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 c975c595fc6b5eb30003bbcfb42d953e0888cbcb Author: Andy Seaborne <[email protected]> AuthorDate: Sat May 10 14:29:46 2025 +0100 Replace uses of GraphPlain --- .../java/org/apache/jena/sparql/SystemARQ.java | 4 +- .../org/apache/jena/sparql/graph/GraphFactory.java | 18 +++--- .../jena/system/buffering/BufferingGraph.java | 6 +- .../jena/arq/junit/sparql/tests/QueryEvalTest.java | 38 +++++------- .../jena/arq/junit/sparql/tests/QueryTestItem.java | 2 +- .../java/org/apache/jena/riot/TestRDFParser.java | 2 +- .../sparql/modify/AbstractTestUpdateGraph.java | 2 +- .../org/apache/jena/graph/GraphMemFactory.java | 1 + .../java/org/apache/jena/graph/compose/Delta.java | 1 + .../org/apache/jena/graph/impl/GraphPlain.java | 15 +++-- .../org/apache/jena/rdf/model/ModelFactory.java | 70 +++++++++++----------- .../org/apache/jena/graph/test/TestGraphPlain.java | 5 +- .../test/java/org/apache/jena/mem/GraphMem_CS.java | 16 +++-- 13 files changed, 91 insertions(+), 89 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java index de440483fc..a9b4332a18 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java @@ -58,8 +58,10 @@ public class SystemARQ public static boolean EnableRomanNumerals = true ; /** - * Use a plain graph (sameValueAs is term equality) + * Use a plain graph (sameAs is term equality) + * @deprecated From jena5, all graph are term equality except where support the Model API. */ + @Deprecated(forRemoval = true) public static boolean UsePlainGraph = false ; /** diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java index f3442f57ac..953d9e44af 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java @@ -23,7 +23,6 @@ import org.apache.jena.graph.Graph; import org.apache.jena.graph.impl.GraphPlain; import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.ModelFactory; -import org.apache.jena.sparql.SystemARQ; import org.apache.jena.sys.JenaSystem; /** Ways to make graphs and models */ @@ -48,7 +47,9 @@ public class GraphFactory { * with the system default is same value (Jena4). * <p> * This affects {@link #createDefaultGraph}. + * @deprecated Do not use. */ + @Deprecated public static void setDftGraphSameTerm(boolean value) { defaultSameTerm = value; } @@ -78,13 +79,11 @@ public class GraphFactory { /** * Create a graph - ARQ-wide default type. - * - * In Jena5, this is "same-term" + * <p> + * From Jena5, this is "same-term" */ public static Graph createDefaultGraph() { - // Normal usage is SystemARQ.UsePlainGraph = false and use - // createJenaDefaultGraph - return SystemARQ.UsePlainGraph ? createPlainGraph() : createJenaDefaultGraph(); + return createJenaDefaultGraph(); } /** Create a graph - the Jena default graph for ARQ and RIOT */ @@ -92,7 +91,12 @@ public class GraphFactory { return GraphMemFactory.createDefaultGraph(); } - /** Graph that uses same-term for find() and contains(). */ + /** + * Graph that uses same-term for find() and contains(). + * + * @deprecated From Jena5, graphs are all "same term" except for {@link org.apache.jena.mem.GraphMem}. + */ + @Deprecated public static Graph createPlainGraph() { return GraphPlain.plain(); } diff --git a/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java b/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java index 2dcc2e094a..52f930b4d2 100644 --- a/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java +++ b/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java @@ -31,7 +31,6 @@ import org.apache.jena.graph.GraphMemFactory; import org.apache.jena.graph.Graph; import org.apache.jena.graph.Node; import org.apache.jena.graph.Triple; -import org.apache.jena.graph.impl.GraphPlain; import org.apache.jena.query.TxnType; import org.apache.jena.shared.PrefixMapping; import org.apache.jena.sparql.core.Transactional; @@ -66,10 +65,7 @@ public class BufferingGraph extends GraphWrapper implements BufferingCtl { public BufferingGraph(Graph graph) { super(graph); prefixMapping = new BufferingPrefixMapping(graph.getPrefixMapping()); - if ( graph.getCapabilities().handlesLiteralTyping()) - addedGraph = GraphMemFactory.createDefaultGraph(); - else - addedGraph = GraphPlain.plain(); + addedGraph = GraphMemFactory.createDefaultGraph(); } public Graph base() { return get(); } diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java index 00d3377c52..d3b93a9cf8 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java @@ -41,7 +41,6 @@ import org.apache.jena.rdf.model.*; import org.apache.jena.riot.Lang; import org.apache.jena.riot.RDFDataMgr; import org.apache.jena.shared.JenaException; -import org.apache.jena.sparql.SystemARQ; import org.apache.jena.sparql.core.Var; import org.apache.jena.sparql.engine.QueryIterator; import org.apache.jena.sparql.engine.ResultSetStream; @@ -175,30 +174,23 @@ public class QueryEvalTest implements Runnable { } private Dataset createDataset(List<String> defaultGraphURIs, List<String> namedGraphURIs) { - // Allow "qt:data" to be quads in defaultGraphURIs. - SystemARQ.UsePlainGraph = true; - try { - Dataset ds = createEmptyDataset(); - Txn.executeWrite(ds, ()->{ - if ( defaultGraphURIs != null ) { - for ( String sourceURI : defaultGraphURIs ) { - SparqlTestLib.parser(sourceURI).parse(ds); - } + // Allow "qt:data" to be quads in defaultGraphURIs. + Dataset ds = createEmptyDataset(); + Txn.executeWrite(ds, ()->{ + if ( defaultGraphURIs != null ) { + for ( String sourceURI : defaultGraphURIs ) { + SparqlTestLib.parser(sourceURI).parse(ds); } - if ( namedGraphURIs != null ) { - for ( String sourceURI : namedGraphURIs ) { - String absSourceURI = IRIs.resolve(sourceURI); - Model m = ds.getNamedModel(absSourceURI); - SparqlTestLib.parser(sourceURI).parse(m); - } + } + if ( namedGraphURIs != null ) { + for ( String sourceURI : namedGraphURIs ) { + String absSourceURI = IRIs.resolve(sourceURI); + Model m = ds.getNamedModel(absSourceURI); + SparqlTestLib.parser(sourceURI).parse(m); } - }); - return ds; - } - finally { - SystemARQ.UsePlainGraph = false; - } - + } + }); + return ds; } private void runTestSelect(Query query, QueryExecution qe) { diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryTestItem.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryTestItem.java index a7e14eb56d..fef67cd30b 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryTestItem.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryTestItem.java @@ -142,7 +142,7 @@ public class QueryTestItem if ( ResultsFormat.isRDFGraphSyntax(format) ) { // Load plain. - Graph g = GraphFactory.createPlainGraph(); + Graph g = GraphFactory.createDefaultGraph(); SparqlTestLib.parser(resultFile).parse(g); Model m = ModelFactory.createModelForGraph(g); return new SPARQLResult(m) ; diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java b/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java index db81b65c5f..e0dfa52c2f 100644 --- a/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java +++ b/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java @@ -287,7 +287,7 @@ public class TestRDFParser { private static Node p = SSE.parseNode(":p"); private void testNormalization(String input, String output, RDFParserBuilder builder) { - Graph graph = GraphFactory.createPlainGraph(); + Graph graph = GraphFactory.createDefaultGraph(); String x = PREFIX + ":s :p " + input; builder.source(new StringReader(x)).parse(graph); assertEquals(1, graph.size()); diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java b/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java index c52b8b6109..2e2cf803ef 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java @@ -360,7 +360,7 @@ public abstract class AbstractTestUpdateGraph extends AbstractTestUpdateBase DatasetGraph gStore = getEmptyDatasetGraph(); script(gStore, "data-2.ru"); - Graph g = GraphFactory.createPlainGraph(); + Graph g = GraphFactory.createDefaultGraph(); Node b = org.apache.jena.graph.NodeFactory.createBlankNode(); g.add(Triple.create(s, p, b)); diff --git a/jena-core/src/main/java/org/apache/jena/graph/GraphMemFactory.java b/jena-core/src/main/java/org/apache/jena/graph/GraphMemFactory.java index 388c74e0ff..c4b0abfa07 100644 --- a/jena-core/src/main/java/org/apache/jena/graph/GraphMemFactory.java +++ b/jena-core/src/main/java/org/apache/jena/graph/GraphMemFactory.java @@ -111,6 +111,7 @@ public class GraphMemFactory * used in Jena2, Jena3 and Jena4 for in-memory graphs. * Jena5 changed to "same term" semantics. * This method will continue to provide a "same value" graph. + * This is used for the Model API. */ public static Graph createDefaultGraphSameValue() { @SuppressWarnings("deprecation") diff --git a/jena-core/src/main/java/org/apache/jena/graph/compose/Delta.java b/jena-core/src/main/java/org/apache/jena/graph/compose/Delta.java index 373b4851aa..a54521cad2 100644 --- a/jena-core/src/main/java/org/apache/jena/graph/compose/Delta.java +++ b/jena-core/src/main/java/org/apache/jena/graph/compose/Delta.java @@ -37,6 +37,7 @@ public class Delta extends CompositionBase implements Graph { private Graph additions; private Graph deletions; + @SuppressWarnings("deprecation") public Delta(Graph base) { super(); this.base = GraphPlain.plain(base); diff --git a/jena-core/src/main/java/org/apache/jena/graph/impl/GraphPlain.java b/jena-core/src/main/java/org/apache/jena/graph/impl/GraphPlain.java index 58050d09e6..ded3b415c8 100644 --- a/jena-core/src/main/java/org/apache/jena/graph/impl/GraphPlain.java +++ b/jena-core/src/main/java/org/apache/jena/graph/impl/GraphPlain.java @@ -35,24 +35,31 @@ import org.apache.jena.util.iterator.ExtendedIterator ; */ public class GraphPlain extends WrappedGraph { - /** Return a graph that only has term-equality + /** + * Return a graph that only has term-equality * and storage in the {@code base} graph. * Update affects the base graph. + * @deprecated From Jena5, graphs are all "same term". */ + @Deprecated public static Graph plain(Graph base) { if ( ! base.getCapabilities().handlesLiteralTyping() ) return base; return new GraphPlain(base); } - /** Return a graph that only has term-equality. */ + /** + * Return a graph that only has term-equality. + * @deprecated From Jena5, graphs are all "same term". + */ + @Deprecated public static Graph plain() { return plain(GraphMemFactory.createDefaultGraph()); } private final Capabilities capabilities; - protected GraphPlain(Graph other) { + private GraphPlain(Graph other) { super(other); capabilities = new WrappedCapabilities(base.getCapabilities()) { @Override public boolean handlesLiteralTyping() { return false; } @@ -121,7 +128,7 @@ public class GraphPlain extends WrappedGraph } /** - * Match a ground triple (even ANY and variablesare considered ground terms in the + * Match a ground triple (even ANY and variables are considered ground terms in the * data triple) with S/P/O which can be wildcards (ANY or null). */ private static boolean sameTermMatch(Node matchSubj, Node matchPred, Node matchObj, Triple dataTriple) { diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java b/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java index 29d7bf7aa0..22652a5939 100644 --- a/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java +++ b/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java @@ -53,41 +53,6 @@ public class ModelFactory extends ModelFactoryBase private ModelFactory() {} - /** - Answer a Model constructed from the single resource in - <code>singleRoot</code> of type <code>ja:Model</code>. - See the Assembler howto (doc/assembler/assembler-howto.html) - for documentation of Assembler descriptions. See also - <code>findAssemblerRoots</code> to find the set of possible - roots in a description, and <code>assemblerModelFrom(Resource)</code> - for assembling a model from its single description. - */ - public static Model assembleModelFrom(Model singleRoot) { - return assembleModelFrom(AssemblerHelp.singleModelRoot(singleRoot)); - } - - /** - Answer a Set of resources present in <code>m</code> that are - explicitly or implicitly of type ja:Object, ie, suitable as roots for - <code>assemblerModelFrom</code>. Note that the resource - objects returned need <i>not</i> have <code>m</code> as - their <code>getModel()</code> - they may be members of an - extended constructed model. - */ - public static Set<Resource> findAssemblerRoots(Model m) { - return AssemblerHelp.findAssemblerRoots(m); - } - - /** - Answer a Model as described the Assembler specification rooted - at the Resource <code>root</code> in its Model. <code>Resource</code> - must be of rdf:type <code>ja:Object</code>, where <code>ja</code> - is the prefix of Jena Assembler objects. - */ - public static Model assembleModelFrom(Resource root) { - return Assembler.general().openModel(root); - } - /** * Answer a fresh Model for use with the Model API. * <p> @@ -224,6 +189,41 @@ public class ModelFactory extends ModelFactoryBase return createOntologyModel( ProfileRegistry.OWL_LANG ); } + /** + Answer a Model constructed from the single resource in + <code>singleRoot</code> of type <code>ja:Model</code>. + See the Assembler howto (doc/assembler/assembler-howto.html) + for documentation of Assembler descriptions. See also + <code>findAssemblerRoots</code> to find the set of possible + roots in a description, and <code>assemblerModelFrom(Resource)</code> + for assembling a model from its single description. + */ + public static Model assembleModelFrom(Model singleRoot) { + return assembleModelFrom(AssemblerHelp.singleModelRoot(singleRoot)); + } + + /** + Answer a Set of resources present in <code>m</code> that are + explicitly or implicitly of type ja:Object, i.e., suitable as roots for + <code>assemblerModelFrom</code>. Note that the resource + objects returned need <i>not</i> have <code>m</code> as + their <code>getModel()</code> - they may be members of an + extended constructed model. + */ + public static Set<Resource> findAssemblerRoots(Model m) { + return AssemblerHelp.findAssemblerRoots(m); + } + + /** + Answer a Model as described the Assembler specification rooted + at the Resource <code>root</code> in its Model. <code>Resource</code> + must be of rdf:type <code>ja:Object</code>, where <code>ja</code> + is the prefix of Jena Assembler objects. + */ + public static Model assembleModelFrom(Resource root) { + return Assembler.general().openModel(root); + } + /** * <p> * Answer a new ontology model which will process in-memory models of diff --git a/jena-core/src/test/java/org/apache/jena/graph/test/TestGraphPlain.java b/jena-core/src/test/java/org/apache/jena/graph/test/TestGraphPlain.java index fac09f854f..bbda304744 100644 --- a/jena-core/src/test/java/org/apache/jena/graph/test/TestGraphPlain.java +++ b/jena-core/src/test/java/org/apache/jena/graph/test/TestGraphPlain.java @@ -35,14 +35,15 @@ import org.apache.jena.util.iterator.ExtendedIterator ; import org.junit.BeforeClass ; import org.junit.Test ; +@SuppressWarnings("deprecation") public class TestGraphPlain { private static Graph graph; - @SuppressWarnings("deprecation") @BeforeClass public static void setUp() { + // GraphMem is the old in-memeory graph which has value-based indexing. + // It is not the default graph implementation. graph = new org.apache.jena.mem.GraphMem(); - if ( ! graph.getCapabilities().handlesLiteralTyping() ) throw new IllegalArgumentException("Test graph does not do the value thing"); graphAdd(graph, "s p o ; s p 1 ; s p 01"); diff --git a/jena-core/src/test/java/org/apache/jena/mem/GraphMem_CS.java b/jena-core/src/test/java/org/apache/jena/mem/GraphMem_CS.java index d6a8e97e09..6767a1307b 100644 --- a/jena-core/src/test/java/org/apache/jena/mem/GraphMem_CS.java +++ b/jena-core/src/test/java/org/apache/jena/mem/GraphMem_CS.java @@ -27,14 +27,12 @@ import static org.junit.Assert.fail; import java.util.Iterator; -import org.apache.jena.graph.Graph; -import org.apache.jena.graph.Node; -import org.apache.jena.graph.Node_URI; -import org.apache.jena.graph.Triple; +import org.junit.runner.RunWith; + +import org.apache.jena.graph.*; import org.apache.jena.shared.JenaException; import org.apache.jena.testing_framework.AbstractGraphProducer; import org.apache.jena.util.iterator.ExtendedIterator; -import org.junit.runner.RunWith; import org.xenei.junit.contract.Contract.Inject; import org.xenei.junit.contract.ContractImpl; import org.xenei.junit.contract.ContractSuite; @@ -46,11 +44,11 @@ import org.xenei.junit.contract.IProducer; @SuppressWarnings("deprecation") public class GraphMem_CS { - protected IProducer<GraphMem> graphProducer = new AbstractGraphProducer<GraphMem>() { + protected IProducer<Graph> graphProducer = new AbstractGraphProducer<Graph>() { @Override - protected GraphMem createNewGraph() { - return new GraphMem(); + protected Graph createNewGraph() { + return GraphMemFactory.createDefaultGraph(); } @Override @@ -66,7 +64,7 @@ public class GraphMem_CS { }; @Inject - public IProducer<GraphMem> getGraphProducer() { + public IProducer<Graph> getGraphProducer() { return graphProducer; }
