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 7cda1394eafb8bb9e9b0097cd4360cb78187d19a Author: Andy Seaborne <[email protected]> AuthorDate: Mon Oct 20 18:24:16 2025 +0100 Act on warnings arising from Java21 --- .../apache/jena/riot/system/stream/LocatorFTP.java | 23 ++------- jena-cmds/src/main/java/arq/rdfdiff.java | 18 +++---- jena-cmds/src/main/java/jena/schemagen.java | 60 ++++++++-------------- .../java/org/apache/jena/langtagx/LangTagX.java | 2 - .../org/apache/jena/rdf/model/impl/ModelCom.java | 11 ++-- .../apache/jena/rdf/model/impl/NTripleReader.java | 13 ++--- .../apache/jena/rdfxml/xmlinput1/RDFXMLReader.java | 8 ++- .../main/java/org/apache/jena/util/FileUtils.java | 12 +++-- .../jena/reasoner/test/WGReasonerTester.java | 32 +++++++----- .../org/apache/jena/ttl_test/JenaReaderBase.java | 2 +- .../jena/arq/querybuilder/ConvertersTest.java | 17 +++--- .../service/enhancer/claimingcache/RefImpl.java | 2 +- .../util/AutoCloseableWithLeakDetectionBase.java | 2 +- .../org/apache/jena/fuseki/build/BuildLib.java | 59 +++++++++++++++------ .../org/apache/jena/fuseki/main/TestQuery.java | 38 ++++++++------ .../jena/geosparql/spatial/task/TaskThread.java | 5 -- 16 files changed, 151 insertions(+), 153 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFTP.java b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFTP.java index 47c7889f93..1b1035b339 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFTP.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFTP.java @@ -18,15 +18,9 @@ package org.apache.jena.riot.system.stream ; -import java.io.IOException ; -import java.io.InputStream ; -import java.net.MalformedURLException ; -import java.net.URL ; - -import org.apache.jena.atlas.io.IO ; -import org.apache.jena.atlas.web.ContentType ; +import org.apache.jena.atlas.web.HttpException; import org.apache.jena.atlas.web.TypedInputStream ; -import org.apache.jena.riot.RDFLanguages ; +import org.apache.jena.http.HttpOp; import org.apache.jena.riot.RiotException ; import org.slf4j.Logger ; import org.slf4j.LoggerFactory ; @@ -47,17 +41,10 @@ public class LocatorFTP extends LocatorURL { public TypedInputStream performOpen(String uri) { if ( uri.startsWith("ftp://") ) { try { - URL url = new URL(uri) ; - InputStream in = url.openStream() ; - ContentType ct = RDFLanguages.guessContentType(uri) ; - return new TypedInputStream(in, ct) ; - } - catch (MalformedURLException ex) { - throw new RiotException("Bad FTP URL: "+uri, ex) ; + return HttpOp.httpGet(uri); } - catch (IOException ex) { - // This includes variations on "not found" - IO.exception(ex) ; + catch (HttpException ex) { + throw new RiotException("Bad FTP URL: "+uri, ex) ; } } return null ; diff --git a/jena-cmds/src/main/java/arq/rdfdiff.java b/jena-cmds/src/main/java/arq/rdfdiff.java index 077b1aacc0..a64530519a 100644 --- a/jena-cmds/src/main/java/arq/rdfdiff.java +++ b/jena-cmds/src/main/java/arq/rdfdiff.java @@ -20,16 +20,11 @@ package arq; import static org.apache.jena.atlas.logging.LogCtl.setLogging; -import java.net.URL; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; import java.io.FileInputStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.*; import org.apache.jena.graph.GraphMemFactory; import org.apache.jena.rdf.model.*; @@ -282,9 +277,8 @@ public class rdfdiff extends java.lang.Object { protected static void read(Model model, String in, String lang, String base) throws java.io.FileNotFoundException { try { - URL url = new URL(in); - model.read(in, base, lang); - } catch (java.net.MalformedURLException e) { + new URI(in).toURL(); + } catch (URISyntaxException | MalformedURLException e) { model.read(new FileInputStream(in), base, lang); } } diff --git a/jena-cmds/src/main/java/jena/schemagen.java b/jena-cmds/src/main/java/jena/schemagen.java index f5744237bd..b88680e9ed 100644 --- a/jena-cmds/src/main/java/jena/schemagen.java +++ b/jena-cmds/src/main/java/jena/schemagen.java @@ -21,19 +21,23 @@ package jena; +import static org.apache.jena.atlas.logging.LogCtl.setLogging; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + import org.apache.jena.ontology.Individual; import org.apache.jena.ontology.OntModel; import org.apache.jena.ontology.OntModelSpec; -import org.apache.jena.rdf.model.Literal; -import org.apache.jena.rdf.model.Model; -import org.apache.jena.rdf.model.ModelFactory; -import org.apache.jena.rdf.model.NodeIterator; -import org.apache.jena.rdf.model.Property; -import org.apache.jena.rdf.model.RDFNode; -import org.apache.jena.rdf.model.Resource; -import org.apache.jena.rdf.model.ResourceFactory; -import org.apache.jena.rdf.model.Statement; -import org.apache.jena.rdf.model.StmtIterator; +import org.apache.jena.rdf.model.*; import org.apache.jena.riot.RDFDataMgr; import org.apache.jena.riot.RDFFormat; import org.apache.jena.riot.RDFWriter; @@ -46,29 +50,6 @@ import org.apache.jena.vocabulary.RDF; import org.apache.jena.vocabulary.RDFS; import org.apache.jena.vocabulary.XSD; -import java.io.File; -import java.io.FileOutputStream; -import java.io.PrintStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -import static org.apache.jena.atlas.logging.LogCtl.setLogging; - /** * <p> * A vocabulary generator, that will consume an ontology or other vocabulary file, @@ -2131,16 +2112,16 @@ public class schemagen { */ public static String urlCheck( String uriOrFile ) { boolean legal = true; - String url = uriOrFile; - // is it a URI already? to check, we make a URL and see what happens! try { - new URL( url ); + new URI(uriOrFile).toURL(); + return uriOrFile; } - catch (MalformedURLException ignore) { + catch (URISyntaxException | MalformedURLException | IllegalArgumentException ignore) { legal = false; } + String url = uriOrFile; // if not a legal url, assume it's a file if (!legal) { legal = true; @@ -2148,9 +2129,9 @@ public class schemagen { url = "file:" + (uriOrFile.startsWith( slash ) ? (slash + slash) : "") + uriOrFile; try { - new URL( url ); + new URI(url).toURL(); } - catch (MalformedURLException ignore) { + catch (URISyntaxException | MalformedURLException ignore) { legal = false; } } @@ -2158,7 +2139,6 @@ public class schemagen { if (!legal) { throw new SchemagenException( "Could not parse " + uriOrFile + " as a legal URL or a file reference. Aborting.", null ); } - return url; } } /* End class SchemagenUtils */ diff --git a/jena-core/src/main/java/org/apache/jena/langtagx/LangTagX.java b/jena-core/src/main/java/org/apache/jena/langtagx/LangTagX.java index 96c589fab0..475d19874a 100644 --- a/jena-core/src/main/java/org/apache/jena/langtagx/LangTagX.java +++ b/jena-core/src/main/java/org/apache/jena/langtagx/LangTagX.java @@ -94,8 +94,6 @@ public class LangTagX { * <p> * Passing this test does not guarantee the string is valid language tag. Use * {@link LangTagX#checkLanguageTag(String)} for validity checking. - * - * @returns true or false */ public static boolean checkLanguageTagBasicSyntax(String langTagStr) { return org.apache.jena.langtag.LangTags.basicCheck(langTagStr); diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java index e0c44450e7..e83f47b8f3 100644 --- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java +++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java @@ -19,7 +19,8 @@ package org.apache.jena.rdf.model.impl; import java.io.*; -import java.net.URL; +import java.net.URI; +import java.net.URISyntaxException; import java.util.*; import java.util.function.Supplier; @@ -203,10 +204,12 @@ public class ModelCom extends EnhGraph implements Model, PrefixMapping, Lock @Override public Model read(String url, String base, String lang) { - try (InputStream is = new URL(url).openStream()) { - read(is, base, lang); - } catch (IOException e) { + try (InputStream in = new URI(url).toURL().openStream()) { + read(in, base, lang); + } catch (IOException e) { throw new WrappedIOException(e); + } catch (URISyntaxException e) { + throw new JenaException(e); } return this; } diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/NTripleReader.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/NTripleReader.java index 8fd6dcbfd2..7f8cdf342f 100644 --- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/NTripleReader.java +++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/NTripleReader.java @@ -18,8 +18,11 @@ package org.apache.jena.rdf.model.impl; -import java.io.*; -import java.net.URL; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.net.URI; import java.util.HashMap; import java.util.Map; @@ -81,10 +84,8 @@ public class NTripleReader extends Object implements RDFReaderI { @Override public void read(Model model, String url) { try { - read( - model, - new InputStreamReader(((new URL(url))).openStream()), - url); + InputStream in = new URI(url).toURL().openStream(); + read(model, in, url); } catch (Exception e) { throw new JenaException(e); } finally { diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput1/RDFXMLReader.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput1/RDFXMLReader.java index dc8813efa9..4d39162f87 100644 --- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput1/RDFXMLReader.java +++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput1/RDFXMLReader.java @@ -19,9 +19,7 @@ package org.apache.jena.rdfxml.xmlinput1; import java.io.*; -import java.net.HttpURLConnection; -import java.net.URL; -import java.net.URLConnection; +import java.net.*; import java.util.Locale ; import org.apache.jena.datatypes.RDFDatatype ; @@ -106,7 +104,7 @@ public class RDFXMLReader implements RDFReaderI, ARPErrorNumbers { String connectionURL = url; URLConnection conn = null; while ( conn == null ) { - URLConnection conn2 = new URL(connectionURL).openConnection(); + URLConnection conn2 = new URI(connectionURL).toURL().openConnection(); if ( ! ( conn2 instanceof HttpURLConnection ) ) { conn = conn2; break; @@ -135,7 +133,7 @@ public class RDFXMLReader implements RDFReaderI, ARPErrorNumbers { read(m, new InputStreamReader(conn.getInputStream(), encoding), url); } catch (FileNotFoundException e) { throw new DoesNotExistException(url); - } catch (IOException e) { + } catch (URISyntaxException | IOException e) { throw new JenaException(e); } } diff --git a/jena-core/src/main/java/org/apache/jena/util/FileUtils.java b/jena-core/src/main/java/org/apache/jena/util/FileUtils.java index abaa6b0f1c..00a4a7f8ac 100644 --- a/jena-core/src/main/java/org/apache/jena/util/FileUtils.java +++ b/jena-core/src/main/java/org/apache/jena/util/FileUtils.java @@ -19,7 +19,9 @@ package org.apache.jena.util; import java.io.* ; -import java.net.URL ; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.nio.charset.Charset ; import java.nio.charset.StandardCharsets ; import java.nio.file.Files; @@ -329,8 +331,12 @@ public class FileUtils // TODO Replace with FileManager public static BufferedReader readerFromURL( String urlStr ) { - try { return asBufferedUTF8( new URL(urlStr).openStream() ); } - catch (java.net.MalformedURLException e) + try { + InputStream conn = new URI(urlStr).toURL().openStream(); + + return asBufferedUTF8( conn ); + } + catch (MalformedURLException | URISyntaxException e) { // Try as a plain filename. try { return asBufferedUTF8( new FileInputStream( urlStr ) ); } catch (FileNotFoundException f) { throw new WrappedIOException( f ); } diff --git a/jena-core/src/test/java/org/apache/jena/reasoner/test/WGReasonerTester.java b/jena-core/src/test/java/org/apache/jena/reasoner/test/WGReasonerTester.java index 21ca27869c..6bf57d6fc1 100644 --- a/jena-core/src/test/java/org/apache/jena/reasoner/test/WGReasonerTester.java +++ b/jena-core/src/test/java/org/apache/jena/reasoner/test/WGReasonerTester.java @@ -22,13 +22,16 @@ import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.net.URL; +import java.net.URI; +import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; +import org.junit.Assert; + import junit.framework.TestCase; -import org.apache.jena.graph.GraphMemFactory; import org.apache.jena.graph.Graph; +import org.apache.jena.graph.GraphMemFactory; import org.apache.jena.rdf.model.*; import org.apache.jena.rdf.model.impl.PropertyImpl; import org.apache.jena.rdf.model.impl.ResourceImpl; @@ -38,7 +41,6 @@ import org.apache.jena.reasoner.Reasoner; import org.apache.jena.reasoner.ReasonerFactory; import org.apache.jena.shared.JenaException; import org.apache.jena.vocabulary.RDF; -import org.junit.Assert; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -152,7 +154,7 @@ public class WGReasonerTester { * @param file the file name, relative to baseDir * @return the loaded Model */ - public Model loadFile(String file) throws IOException { + public Model loadFile(String file) { String langType = "RDF/XML"; if (file.endsWith(".nt")) { langType = "N-TRIPLE"; @@ -169,17 +171,19 @@ public class WGReasonerTester { * Now use InputStream instead of Reader (general hygine). * Also treat http:.... as URL not local file. */ - InputStream in; - if ( baseDir.startsWith("http:")) { - in = new URL(baseDir+fname).openStream(); - } else { - in = new FileInputStream(baseDir + fname); + try { + InputStream in; + if ( baseDir.startsWith("http:") ) { + in = new URI(baseDir + fname).toURL().openStream(); + } else { + in = new FileInputStream(baseDir + fname); + } + in = new BufferedInputStream(in); + result.read(in, BASE_URI + fname, langType); + return result; + } catch (IOException | URISyntaxException e) { + throw new JenaException(e); } - in = new BufferedInputStream(in); - - - result.read(in, BASE_URI + fname, langType); - return result; } /** diff --git a/jena-core/src/test/java/org/apache/jena/ttl_test/JenaReaderBase.java b/jena-core/src/test/java/org/apache/jena/ttl_test/JenaReaderBase.java index d963f636d4..a2268bb7ef 100644 --- a/jena-core/src/test/java/org/apache/jena/ttl_test/JenaReaderBase.java +++ b/jena-core/src/test/java/org/apache/jena/ttl_test/JenaReaderBase.java @@ -47,7 +47,7 @@ public abstract class JenaReaderBase implements RDFReaderI { @Override final public void read(Model model, java.lang.String url) { try { - URLConnection conn = new URL(url).openConnection(); + URLConnection conn = new URI(url).toURL().openConnection(); String encoding = conn.getContentEncoding(); read(model, new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8), url); } catch (JenaException e) { diff --git a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ConvertersTest.java b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ConvertersTest.java index aff7df31c8..3a8ad411bd 100644 --- a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ConvertersTest.java +++ b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ConvertersTest.java @@ -18,19 +18,18 @@ package org.apache.jena.arq.querybuilder; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; -import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.UUID; +import org.junit.After; +import org.junit.Test; + import org.apache.jena.datatypes.BaseDatatype; import org.apache.jena.datatypes.DatatypeFormatException; import org.apache.jena.datatypes.TypeMapper; @@ -48,8 +47,6 @@ import org.apache.jena.sparql.path.P_Link; import org.apache.jena.sparql.path.Path; import org.apache.jena.sparql.util.NodeIsomorphismMap; import org.apache.jena.vocabulary.RDF; -import org.junit.After; -import org.junit.Test; public class ConvertersTest { @@ -67,7 +64,7 @@ public class ConvertersTest { } @Test - public void makeLiteralObjectTest() throws MalformedURLException { + public void makeLiteralObjectTest() throws Exception { Node n = Converters.makeLiteral(5); assertEquals("5", n.getLiteralLexicalForm()); assertEquals(Integer.valueOf(5), n.getLiteralValue()); @@ -79,7 +76,7 @@ public class ConvertersTest { assertEquals("Hello", n.getLiteralValue()); assertEquals(XSDDatatype.XSDstring, n.getLiteralDatatype()); - URL url = new URL("http://example.com"); + URL url = new URI("http://example.com").toURL(); n = Converters.makeLiteral(url); assertEquals("http://example.com", n.getLiteralLexicalForm()); assertEquals(url, n.getLiteralValue()); diff --git a/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/claimingcache/RefImpl.java b/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/claimingcache/RefImpl.java index 50dba90a77..2b89c2edd3 100644 --- a/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/claimingcache/RefImpl.java +++ b/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/claimingcache/RefImpl.java @@ -100,7 +100,7 @@ public class RefImpl<T> * Note: Actually this method should be replaced with an approach using Java 9 Cleaner * however I couldn't get the cleaner to run. */ - @SuppressWarnings("deprecation") + @SuppressWarnings("removal") @Override protected void finalize() throws Throwable { try { diff --git a/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/impl/util/AutoCloseableWithLeakDetectionBase.java b/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/impl/util/AutoCloseableWithLeakDetectionBase.java index 95a0269e5f..fd00da83f3 100644 --- a/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/impl/util/AutoCloseableWithLeakDetectionBase.java +++ b/jena-extras/jena-serviceenhancer/src/main/java/org/apache/jena/sparql/service/enhancer/impl/util/AutoCloseableWithLeakDetectionBase.java @@ -41,7 +41,7 @@ public class AutoCloseableWithLeakDetectionBase return instantiationStackTrace; } - @SuppressWarnings("deprecation") + @SuppressWarnings("removal") @Override protected void finalize() throws Throwable { try { diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/BuildLib.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/BuildLib.java index e54000bb62..10735c204d 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/BuildLib.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/BuildLib.java @@ -21,12 +21,9 @@ package org.apache.jena.fuseki.build; import static org.apache.jena.fuseki.build.FusekiPrefixes.PREFIXES; import java.lang.reflect.Constructor; -import java.net.URL; -import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Objects; import org.apache.jena.atlas.lib.Pair; import org.apache.jena.fuseki.Fuseki; @@ -175,28 +172,18 @@ import org.apache.jena.vocabulary.RDFS; ? implementation.getLiteralLexicalForm() : implementation.getURI(); String javaScheme = "java:"; - String fileScheme = "file:"; String scheme = null; if ( classURI.startsWith(javaScheme) ) { scheme = javaScheme; - } else if ( classURI.startsWith(fileScheme) ) { - scheme = fileScheme; } else { - Fuseki.configLog.error("Class to load is not 'java:' or 'file:': " + classURI); - throw new FusekiConfigException("Not a 'java:' or 'file:' class reference: "+classURI); + Fuseki.configLog.error("Class to load is not 'java:' " + classURI); + throw new FusekiConfigException("Not a 'java:' class reference: "+classURI); } String className = classURI.substring(scheme.length()); ActionService action = null; try { - Class<?> cls; - if ( Objects.equals(scheme, fileScheme) ) { - try ( URLClassLoader urlClassLoader = new URLClassLoader(new URL[] {new URL(classURI)}) ){ - cls = Class.forName(className, true, urlClassLoader); - } - } else { - cls = Class.forName(className); - } + Class<?> cls = Class.forName(className); Constructor<?> x = cls.getConstructor(); action = (ActionService)x.newInstance(); } catch (ClassNotFoundException ex) { @@ -207,4 +194,44 @@ import org.apache.jena.vocabulary.RDFS; Operation op = Operation.alloc(NodeFactory.createBlankNode(), classURI, classURI); return Pair.create(op, action); } + + // With file: file loading ... +// /** Load a class (an {@link ActionService}) and create an {@link Operation} for it. */ +// /*package*/ static Pair<Operation, ActionService> loadOperationActionService(Graph graph, Node implementation) { +// String classURI = implementation.isLiteral() +// ? implementation.getLiteralLexicalForm() +// : implementation.getURI(); +// String javaScheme = "java:"; +// String fileScheme = "file:"; +// String scheme = null; +// if ( classURI.startsWith(javaScheme) ) { +// scheme = javaScheme; +// } else if ( classURI.startsWith(fileScheme) ) { +// scheme = fileScheme; +// } else { +// Fuseki.configLog.error("Class to load is not 'java:' or 'file:': " + classURI); +// throw new FusekiConfigException("Not a 'java:' or 'file:' class reference: "+classURI); +// } +// String className = classURI.substring(scheme.length()); +// +// ActionService action = null; +// try { +// Class<?> cls; +// if ( Objects.equals(scheme, fileScheme) ) { +// try ( URLClassLoader urlClassLoader = new URLClassLoader(new URL[] {new URL(classURI)}) ){ +// cls = Class.forName(className, true, urlClassLoader); +// } +// } else { +// cls = Class.forName(className); +// } +// Constructor<?> x = cls.getConstructor(); +// action = (ActionService)x.newInstance(); +// } catch (ClassNotFoundException ex) { +// throw new FusekiConfigException("Class not found: " + className); +// } catch (Exception ex) { +// throw new FusekiConfigException("Can't create object from " + className); +// } +// Operation op = Operation.alloc(NodeFactory.createBlankNode(), classURI, classURI); +// return Pair.create(op, action); +// } } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java index 54f8e8db4a..0196573573 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java @@ -18,15 +18,16 @@ package org.apache.jena.fuseki.main; +import static org.apache.jena.http.HttpLib.newGetRequest; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.*; -import java.net.HttpURLConnection; -import java.net.URL; import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; import java.util.Iterator; import org.junit.jupiter.api.BeforeEach; @@ -35,6 +36,7 @@ import org.junit.jupiter.api.Test; import org.apache.jena.atlas.json.JsonArray; import org.apache.jena.atlas.web.AcceptList; import org.apache.jena.atlas.web.MediaType; +import org.apache.jena.atlas.web.TypedInputStream; import org.apache.jena.fuseki.DEF; import org.apache.jena.fuseki.Fuseki; import org.apache.jena.graph.Graph; @@ -42,6 +44,8 @@ import org.apache.jena.graph.Node; import org.apache.jena.graph.NodeFactory; import org.apache.jena.graph.Triple; import org.apache.jena.http.HttpEnv; +import org.apache.jena.http.HttpLib; +import org.apache.jena.http.HttpOp; import org.apache.jena.query.*; import org.apache.jena.sparql.core.Quad; import org.apache.jena.sparql.core.Var; @@ -108,9 +112,13 @@ public class TestQuery extends AbstractFusekiTest { @Test public void request_id_header_01() throws IOException { String qs = Convert.encWWWForm("ASK{}"); - URL u = new URL(serviceQuery() + "?query=" + qs); - HttpURLConnection conn = (HttpURLConnection)u.openConnection(); - assertTrue(conn.getHeaderField(Fuseki.FusekiRequestIdHeader) != null); + String url = serviceQuery() + "?query=" + qs; + HttpRequest request = newGetRequest(url, null); + HttpResponse<InputStream> response = HttpLib.execute(HttpEnv.getDftHttpClient(), request); + try (InputStream body = response.body()) { + assertTrue(response.headers().firstValue(Fuseki.FusekiRequestIdHeader) != null); + HttpLib.finishInputStream(body); + } } @Test @@ -267,7 +275,6 @@ public class TestQuery extends AbstractFusekiTest { .queryString(query) .acceptHeader(contentType) .build(); - try ( qExec ) { Graph graph = qExec.describe(); String x = qExec.getHttpResponseContentType(); @@ -290,17 +297,18 @@ public class TestQuery extends AbstractFusekiTest { public void query_json_02() throws IOException { String qs = Convert.encWWWForm("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + "WHERE { ?s ?p ?o }"); - URL u = new URL(serviceQuery() + "?query=" + qs); - HttpURLConnection conn = (HttpURLConnection)u.openConnection(); + String url = serviceQuery() + "?query=" + qs; String result = null; - StringBuilder sb = new StringBuilder(); - try ( InputStream is = new BufferedInputStream(conn.getInputStream()); - BufferedReader br = new BufferedReader(new InputStreamReader(is)) ) { - String inputLine = ""; - while ((inputLine = br.readLine()) != null) { - sb.append(inputLine); + try ( TypedInputStream in = HttpOp.httpGet(url) ) { + StringBuilder sb = new StringBuilder(); + try ( InputStream is = new BufferedInputStream(in); + BufferedReader br = new BufferedReader(new InputStreamReader(is)) ) { + String inputLine = ""; + while ((inputLine = br.readLine()) != null) { + sb.append(inputLine); + } + result = sb.toString(); } - result = sb.toString(); } assertNotNull(result); assertTrue(result.contains("http://example/x")); diff --git a/jena-geosparql/src/main/java/org/apache/jena/geosparql/spatial/task/TaskThread.java b/jena-geosparql/src/main/java/org/apache/jena/geosparql/spatial/task/TaskThread.java index 519778ea58..34241e5f52 100644 --- a/jena-geosparql/src/main/java/org/apache/jena/geosparql/spatial/task/TaskThread.java +++ b/jena-geosparql/src/main/java/org/apache/jena/geosparql/spatial/task/TaskThread.java @@ -214,9 +214,4 @@ public abstract class TaskThread public boolean isAborting() { return requestingCancel.get(); } - - @Override - public boolean isTerminated() { - return !isAlive(); - } }
