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 c48ef3ab6100e30cc52ea433f2b4e79096600d3a Author: Andy Seaborne <[email protected]> AuthorDate: Sun Aug 3 15:17:47 2025 +0100 GH-3368: Suppress warnings in assembler and reasoner due to OntModel --- .../java/org/apache/jena/assembler/Assembler.java | 4 ++ .../org/apache/jena/assembler/ConstAssembler.java | 2 + .../assembler/assemblers/OntModelAssembler.java | 1 + .../assemblers/OntModelSpecAssembler.java | 19 ++++--- .../assembler/test/TestBuiltinAssemblerGroup.java | 2 + .../reasoner/rulesys/test/ConcurrencyTest.java | 65 +++++++++++----------- .../test/TestRestrictionsDontNeedTyping.java | 27 ++++----- .../reasoner/rulesys/test/TestRuleSystemBugs.java | 1 + .../reasoner/rulesys/test/WebOntTestHarness.java | 1 + .../apache/jena/reasoner/test/TestInfGraph.java | 9 +-- .../apache/jena/reasoner/test/TestInfModel.java | 13 +++-- .../jena/reasoner/test/TestInfPrefixMapping.java | 7 ++- 12 files changed, 82 insertions(+), 69 deletions(-) diff --git a/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java b/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java index f75ffb46a5..79e18c0f27 100644 --- a/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java +++ b/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java @@ -77,6 +77,8 @@ public interface Assembler { public static final Assembler infModel = ConstAssembler.infModel(); + /** @deprecated Use org.apache.hena.ontapi */ + @Deprecated(forRemoval=true) public static final Assembler ontModel = ConstAssembler.ontModel(); public static final Assembler reasonerFactory = ConstAssembler.reasonerFactory(); @@ -87,6 +89,8 @@ public interface Assembler { public static final Assembler unionModel = ConstAssembler.unionModel(); + /** @deprecated Use org.apache.hena.ontapi */ + @Deprecated(forRemoval=true) public static final Assembler ontModelSpec = ConstAssembler.ontModelSpec(); public static final Assembler ruleSet = ConstAssembler.ruleSet(); diff --git a/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java b/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java index 08ef4001f9..7ac7ce0ca4 100644 --- a/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java +++ b/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java @@ -54,6 +54,7 @@ import org.apache.jena.assembler.assemblers.* ; } private static Assembler ontModel = null ; + @Deprecated(forRemoval=true) public static Assembler ontModel() { if ( ontModel == null ) ontModel = new OntModelAssembler(); @@ -89,6 +90,7 @@ import org.apache.jena.assembler.assemblers.* ; } private static Assembler ontModelSpec = null ; + @Deprecated(forRemoval=true) public static Assembler ontModelSpec() { if ( ontModelSpec == null ) ontModelSpec = new OntModelSpecAssembler(); diff --git a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelAssembler.java b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelAssembler.java index 5d931e823b..005f401670 100644 --- a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelAssembler.java +++ b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelAssembler.java @@ -24,6 +24,7 @@ import org.apache.jena.assembler.* ; import org.apache.jena.ontology.* ; import org.apache.jena.rdf.model.* ; +@Deprecated(forRemoval=true) public class OntModelAssembler extends InfModelAssembler implements Assembler { @Override public Model openEmptyModel( Assembler a, Resource root, Mode mode ) diff --git a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelSpecAssembler.java b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelSpecAssembler.java index 01472da46c..e808898766 100644 --- a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelSpecAssembler.java +++ b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/OntModelSpecAssembler.java @@ -36,6 +36,7 @@ import org.apache.jena.shared.NotFoundException ; unless the root is ja:SPOO for some constant SPOO of OntModelSpec, in which case the defaults are taken from there. */ +@Deprecated(forRemoval=true) public class OntModelSpecAssembler extends AssemblerBase implements Assembler { @Override @@ -53,7 +54,7 @@ public class OntModelSpecAssembler extends AssemblerBase implements Assembler if (source != null) spec.setImportModelGetter( source ); return spec; } - + private ModelGetter getModelSource( Assembler a, Resource root ) { Resource source = getUniqueResource( root, JA.importSource ); @@ -74,7 +75,7 @@ public class OntModelSpecAssembler extends AssemblerBase implements Assembler if (ru != null) return ReasonerFactoryAssembler.getReasonerFactoryByURL( root, ru ); return rf == null ? null : (ReasonerFactory) a.open( rf ); } - + private OntDocumentManager getDocumentManager( Assembler a, Resource root ) { Resource dm = getUniqueResource( root, JA.documentManager ); @@ -101,7 +102,7 @@ public class OntModelSpecAssembler extends AssemblerBase implements Assembler return like == null ? DEFAULT : getRequiredOntModelSpecField( like.getLocalName() ); } } - + private OntModelSpec getRequiredOntModelSpecField( String name ) { OntModelSpec result = getOntModelSpecField( name ); @@ -115,15 +116,15 @@ public class OntModelSpecAssembler extends AssemblerBase implements Assembler */ public static OntModelSpec getOntModelSpecField( String name ) { - try - { + try + { Class<OntModelSpec> omc = OntModelSpec.class; - Field f = omc.getField( name ); + Field f = omc.getField( name ); int mods = f.getModifiers(); - if (f.getType() == omc && isConstant( mods )) - return (OntModelSpec) f.get( null ); + if (f.getType() == omc && isConstant( mods )) + return (OntModelSpec) f.get( null ); } - catch (Exception e) + catch (Exception e) {} return null; } diff --git a/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java b/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java index 6465d4581b..42ee9efeef 100644 --- a/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java +++ b/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java @@ -31,6 +31,7 @@ public class TestBuiltinAssemblerGroup extends AssemblerTestBase @Override protected Class<? extends Assembler> getAssemblerClass() { return null; } + @SuppressWarnings("removal") public void testGeneralRegistration() { assertAssemblerClass( JA.DefaultModel, DefaultModelAssembler.class ); @@ -48,6 +49,7 @@ public class TestBuiltinAssemblerGroup extends AssemblerTestBase assertAssemblerClass( JA.UnionModel, UnionModelAssembler.class ); } + @SuppressWarnings("removal") public void testVariables() { assertInstanceOf( DefaultModelAssembler.class, Assembler.defaultModel ); diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/ConcurrencyTest.java b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/ConcurrencyTest.java index d4c89da9e3..133620fd4b 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/ConcurrencyTest.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/ConcurrencyTest.java @@ -24,6 +24,7 @@ import java.lang.management.ThreadMXBean ; import java.util.concurrent.ExecutorService ; import java.util.concurrent.Executors ; +import org.apache.jena.atlas.lib.Creator; import org.apache.jena.ontology.OntClass ; import org.apache.jena.ontology.OntModel ; import org.apache.jena.ontology.OntModelSpec ; @@ -40,7 +41,7 @@ import junit.framework.TestSuite ; /** * Test for deadlock and concurrency problems in rule engines. - * + * * <p>Test inspired by suggestions from Timm Linder</p> */ public class ConcurrencyTest extends TestCase { @@ -48,52 +49,50 @@ public class ConcurrencyTest extends TestCase { // For routine jena tests we do minimal exercise here, otherwise too slow // If problems crop up then switch to full tests final static boolean FULL_TEST = false; - + // Number of class instances to create in the model under test final static int MODEL_SIZE = FULL_TEST ? 100 : 10; - + // Number of threads to create in the tests final static int NUM_THREADS = FULL_TEST ? 50 : 20; - + // Length of time to run the threads under test, in ms final static int TEST_LENGTH = FULL_TEST ? 3000 : 20; - + // Number of times to run the test cycle final static int NUM_RUNS = FULL_TEST ? 30 : 3; - + /** * Boilerplate for junit - */ + */ public ConcurrencyTest( String name ) { - super( name ); + super( name ); } - + /** * Boilerplate for junit. * This is its own test suite */ public static TestSuite suite() { - return new TestSuite( ConcurrencyTest.class ); - } - - private interface ModelCreator { - public OntModel createModel(); + return new TestSuite( ConcurrencyTest.class ); } - private void runConcurrencyTest(ModelCreator modelCreator, String runId) throws InterruptedException { + @SuppressWarnings("removal") + private void runConcurrencyTest(Creator<OntModel> modelCreator, String runId) throws InterruptedException { try { for(int i = 0; i < NUM_RUNS; ++i) { - doTestConcurrency(modelCreator.createModel()); + doTestConcurrency(modelCreator.create()); } } catch (JenaException e ) { assertTrue(e.getMessage(), false); } } + @SuppressWarnings("removal") private void doTestConcurrency(final OntModel model) throws InterruptedException { // initialize the model final String NS = PrintUtil.egNS; - + model.enterCriticalSection(Lock.WRITE); final OntClass Top = model.createClass(NS + "Top"); for (int i = 0; i < MODEL_SIZE; i++) { @@ -112,19 +111,19 @@ public class ConcurrencyTest extends TestCase { while(System.currentTimeMillis() - runStartedAt < TEST_LENGTH) { Thread.yield(); - + model.enterCriticalSection(Lock.READ); try { // Iterate over all statements StmtIterator it = model.listStatements(); - + // // Debug // List<Statement> s = it.toList(); // it = new StmtIteratorImpl(s.iterator()) ; - + while(it.hasNext()) it.nextStatement(); it.close(); - + // Check number of instances of Top class int count = 0; ExtendedIterator<OntResource> ei = (ExtendedIterator<OntResource>) Top.listInstances(); @@ -142,22 +141,22 @@ public class ConcurrencyTest extends TestCase { } } } - + // Start the threads ExecutorService executorService = Executors.newFixedThreadPool(NUM_THREADS); for(int i = 0; i < NUM_THREADS; ++i) { executorService.submit(new QueryExecutingRunnable()); } - + // Wait for threads to finish executorService.shutdown(); // this will *not* terminate any threads currently running Thread.sleep(TEST_LENGTH + 50); - + // Possibly in deadlock, wait a little longer to be sure for(int i = 0; i < 50 && !executorService.isTerminated(); i++) { Thread.sleep(20); } - + if(!executorService.isTerminated()) { /* uncomment this block to perform deadlock checking, only on java 1.6 */ // Check for deadlock @@ -165,16 +164,16 @@ public class ConcurrencyTest extends TestCase { long[] ids = tmx.findDeadlockedThreads(); if (ids != null) { ThreadInfo[] infos = tmx.getThreadInfo(ids, true, true); - + System.err.println("*** Deadlocked threads"); for (ThreadInfo ti : infos) { - System.err.println("Thread \"" + ti.getThreadName() + "\" id=" + ti.getThreadId() + " " + System.err.println("Thread \"" + ti.getThreadName() + "\" id=" + ti.getThreadId() + " " + ti.getThreadState().toString()); System.err.println("Lock name: " + ti.getLockName() + " owned by \"" + ti.getLockOwnerName() + "\" id=" + ti.getLockOwnerId()); System.err.println("\nStack trace:"); for(StackTraceElement st : ti.getStackTrace()) - System.err.println(" " + st.getClassName() + "." + st.getMethodName() + System.err.println(" " + st.getClassName() + "." + st.getMethodName() + " (" + st.getFileName() + ":" + st.getLineNumber() + ")" ); System.err.println(); } @@ -184,12 +183,10 @@ public class ConcurrencyTest extends TestCase { assertTrue("Failed to terminate execution", false); } } - + + @SuppressWarnings("removal") public void testWithOWLMemMicroRuleInfModel() throws InterruptedException { - runConcurrencyTest(new ModelCreator() { @Override - public OntModel createModel() { - return ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF); - }}, "OWL_MEM_MICRO_RULE_INF"); + runConcurrencyTest( ()->ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF), + "OWL_MEM_MICRO_RULE_INF"); } - } diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRestrictionsDontNeedTyping.java b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRestrictionsDontNeedTyping.java index f1885656b8..459af83700 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRestrictionsDontNeedTyping.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRestrictionsDontNeedTyping.java @@ -26,19 +26,20 @@ import org.apache.jena.shared.PrefixMapping ; import org.apache.jena.vocabulary.* ; /** - Test that restriction inference works even when the restriction isn't given an + Test that restriction inference works even when the restriction isn't given an explicit type (ie we're not caught in a forward rule -> backward rule layering problem). */ +@SuppressWarnings("removal") public class TestRestrictionsDontNeedTyping extends ModelTestBase { - + public static TestSuite suite() { - return new TestSuite( TestRestrictionsDontNeedTyping.class ); - } - + return new TestSuite( TestRestrictionsDontNeedTyping.class ); + } + static final Property ANY = null; - + public TestRestrictionsDontNeedTyping( String name ) { super( name ); } @@ -51,7 +52,7 @@ public class TestRestrictionsDontNeedTyping extends ModelTestBase public void testAllValuesFromMicroRules() { /* micro doesn't support this anyway */ - // testAllValuesFrom( OntModelSpec.OWL_MEM_MICRO_RULE_INF ); + // testAllValuesFrom( OntModelSpec.OWL_MEM_MICRO_RULE_INF ); } private void testAllValuesFrom( OntModelSpec owlSpec ) @@ -60,7 +61,7 @@ public class TestRestrictionsDontNeedTyping extends ModelTestBase OntModel ont = ModelFactory.createOntologyModel( owlSpec, m ); assertTrue( ont.contains( resource( "t" ), RDF.type, resource( "T" ) ) ); } - + public void testSomeValuesFromMiniRules() { testSomeValuesFrom( OntModelSpec.OWL_MEM_MINI_RULE_INF ); } @@ -76,13 +77,13 @@ public class TestRestrictionsDontNeedTyping extends ModelTestBase OntModel ont = ModelFactory.createOntologyModel( owlSpec, m ); assertTrue( ont.contains( resource( "X" ), RDF.type, resource( "V" ) ) ); } - + public void testCardinalityFullRules() { testCardinality( OntModelSpec.OWL_MEM_RULE_INF ); } - + // public void testCardinalityMiniRules() // { testCardinality( OntModelSpec.OWL_MEM_MINI_RULE_INF ); } -// +// // public void testCardinalityMicroRules() // { testCardinality( OntModelSpec.OWL_MEM_MICRO_RULE_INF ); } @@ -92,9 +93,9 @@ public class TestRestrictionsDontNeedTyping extends ModelTestBase OntModel ont = ModelFactory.createOntologyModel( owlSpec, m ); assertEquals( 1, ont.listStatements( resource( "X" ), property( "P" ), ANY ).toList().size() ); } - + Model model( String statements ) - { + { Model result = ModelFactory.createDefaultModel(); result.setNsPrefixes( PrefixMapping.Extended ); return modelAdd( result, statements ); diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRuleSystemBugs.java b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRuleSystemBugs.java index 2a6cbf4a89..abc62701c9 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRuleSystemBugs.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/TestRuleSystemBugs.java @@ -86,6 +86,7 @@ import java.util.Set; /** * Unit tests for reported bugs in the rule system. */ +@SuppressWarnings("removal") public class TestRuleSystemBugs extends TestCase { /** diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/WebOntTestHarness.java b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/WebOntTestHarness.java index 5afe2c947c..d3dd7d6b30 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/WebOntTestHarness.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/rulesys/test/WebOntTestHarness.java @@ -446,6 +446,7 @@ public class WebOntTestHarness { * Load the premises or conclusions for the test, optional performing * import processing. */ + @SuppressWarnings("removal") public Model getDoc(Resource test, Property docType, boolean processImports) throws IOException { if (processImports) { Model result = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null); diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfGraph.java b/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfGraph.java index dfa7c061e3..4500b7266b 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfGraph.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfGraph.java @@ -34,19 +34,20 @@ public class TestInfGraph extends AbstractTestGraph { public TestInfGraph( String name ) { super( name ); } - + public static TestSuite suite() { return new TestSuite( TestInfGraph.class ); } - + + @SuppressWarnings("removal") private InfGraph getInfGraph() { return (InfGraph) ModelFactory.createOntologyModel().getGraph(); } - + @Override public Graph getNewGraph() { return getInfGraph(); } - + public void testInfGraph() { InfGraph ig = getInfGraph(); diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfModel.java b/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfModel.java index d152fabd6d..af4dda5c04 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfModel.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfModel.java @@ -28,29 +28,30 @@ import org.apache.jena.util.PrintUtil ; import org.apache.jena.vocabulary.RDFS ; /** - * Test machinery in InfModel which is not associated with any + * Test machinery in InfModel which is not associated with any * particular reasoner. */ public class TestInfModel extends TestCase { /** * Boilerplate for junit - */ + */ public TestInfModel( String name ) { - super( name ); + super( name ); } - + /** * Boilerplate for junit. * This is its own test suite */ public static TestSuite suite() { return new TestSuite(TestInfModel.class); - } + } /** * Check interface extensions which had an earlier bug with null handling */ + @SuppressWarnings("removal") public void testListWithPosits() { String NS = PrintUtil.egNS; Model data = ModelFactory.createDefaultModel(); @@ -67,7 +68,7 @@ public class TestInfModel extends TestCase { data.createStatement(c1, RDFS.subClassOf, c3), data.createStatement(c1, RDFS.subClassOf, c1) }); - + OntModel om = ModelFactory.createOntologyModel(OntModelSpec.RDFS_MEM_RDFS_INF, data); TestUtil.assertIteratorValues(this, om.listStatements(c1, RDFS.subClassOf, null, premise), new Object[] { diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfPrefixMapping.java b/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfPrefixMapping.java index 6cdd78e2b2..b61da4bb95 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfPrefixMapping.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/test/TestInfPrefixMapping.java @@ -32,15 +32,16 @@ public class TestInfPrefixMapping extends ModelTestBase { public TestInfPrefixMapping( String name ) { super( name ); } - + public static TestSuite suite() { return new TestSuite( TestInfPrefixMapping.class ); } - + + @SuppressWarnings("removal") private InfGraph getInfGraph() { return (InfGraph) ModelFactory.createOntologyModel().getGraph(); } - + public void testInfGraph() { InfGraph ig = getInfGraph();
