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
The following commit(s) were added to refs/heads/main by this push:
new 35706e4e69 Reformat in package oaj.riot.system.stream. Rebame package
as 'streammgr'
35706e4e69 is described below
commit 35706e4e69cd56762432812f0cbb3311b8ae9b26
Author: Andy Seaborne <[email protected]>
AuthorDate: Sun Dec 14 11:42:31 2025 +0000
Reformat in package oaj.riot.system.stream. Rebame package as 'streammgr'
---
.../java/org/apache/jena/query/QueryFactory.java | 2 +-
.../main/java/org/apache/jena/riot/RDFDataMgr.java | 2 +-
.../main/java/org/apache/jena/riot/RDFParser.java | 2 +-
.../org/apache/jena/riot/RDFParserBuilder.java | 2 +-
.../java/org/apache/jena/riot/ReadAnything.java | 2 +-
.../jena/riot/adapters/AdapterFileManager.java | 2 +-
.../org/apache/jena/riot/adapters/AdapterLib.java | 2 +-
.../jena/riot/adapters/AdapterLocationMapper.java | 2 +-
.../apache/jena/riot/adapters/AdapterLocator.java | 2 +-
.../org/apache/jena/riot/rowset/QueryResults.java | 2 +-
.../riot/system/stream/LocatorClassLoader.java | 86 --------
.../jena/riot/system/stream/LocatorFile.java | 217 ---------------------
.../apache/jena/riot/system/stream/LocatorZip.java | 118 -----------
.../{stream => streammgr}/JenaIOEnvironment.java | 28 +--
.../{stream => streammgr}/LocationMapper.java | 96 ++++-----
.../riot/system/{stream => streammgr}/Locator.java | 8 +-
.../riot/system/streammgr/LocatorClassLoader.java | 84 ++++++++
.../system/{stream => streammgr}/LocatorFTP.java | 26 +--
.../jena/riot/system/streammgr/LocatorFile.java | 206 +++++++++++++++++++
.../system/{stream => streammgr}/LocatorHTTP.java | 26 +--
.../system/{stream => streammgr}/LocatorStdin.java | 8 +-
.../system/{stream => streammgr}/LocatorURL.java | 2 +-
.../jena/riot/system/streammgr/LocatorZip.java | 111 +++++++++++
.../{stream => streammgr}/StreamManager.java | 88 ++++-----
.../jena/sparql/resultset/ResultsReader.java | 5 +-
.../java/org/apache/jena/riot/TestRDFParser.java | 4 +-
.../apache/jena/riot/adapters/TestFileManager.java | 4 +-
.../org/apache/jena/riot/stream/TestLocators.java | 2 +-
.../apache/jena/riot/stream/TestStreamManager.java | 6 +-
.../main/java/org/apache/jena/fuseki/Fuseki.java | 6 +-
.../main/java/org/apache/jena/shacl/Imports.java | 4 +-
.../org/apache/jena/shex/runner/ShexTests.java | 6 +-
32 files changed, 569 insertions(+), 592 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/query/QueryFactory.java
b/jena-arq/src/main/java/org/apache/jena/query/QueryFactory.java
index ca69f70121..f4fecf96b3 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/QueryFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/QueryFactory.java
@@ -23,7 +23,7 @@ import java.io.InputStream;
import org.apache.jena.atlas.io.IO;
import org.apache.jena.irix.IRIs;
import org.apache.jena.irix.IRIx;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.shared.NotFoundException;
import org.apache.jena.sparql.lang.SPARQLParser;
import org.apache.jena.sparql.lang.SPARQLParserRegistry;
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
b/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
index 163263ed90..e755b0238b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
@@ -33,7 +33,7 @@ import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.lang.IteratorParsers;
import org.apache.jena.riot.system.StreamRDF;
import org.apache.jena.riot.system.StreamRDFLib;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.riot.writer.NQuadsWriter;
import org.apache.jena.riot.writer.NTriplesWriter;
import org.apache.jena.sparql.core.DatasetGraph;
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
b/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
index 9a9bf179cd..ee3c884f51 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
@@ -50,7 +50,7 @@ import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.process.normalize.StreamCanonicalLangTag;
import org.apache.jena.riot.process.normalize.StreamCanonicalLiterals;
import org.apache.jena.riot.system.*;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.riot.web.HttpNames;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.DatasetGraphFactory;
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
index aebb15e1e7..938a518159 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
@@ -36,7 +36,7 @@ import org.apache.jena.rdf.model.Model;
import org.apache.jena.riot.RDFParser.LangTagForm;
import org.apache.jena.riot.lang.LabelToNode;
import org.apache.jena.riot.system.*;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.ContextAccumulator;
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/ReadAnything.java
b/jena-arq/src/main/java/org/apache/jena/riot/ReadAnything.java
index e012d8af2f..521f78e056 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/ReadAnything.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/ReadAnything.java
@@ -31,7 +31,7 @@ import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.resultset.ResultSetReaderRegistry;
import org.apache.jena.riot.system.StreamRDF;
import org.apache.jena.riot.system.StreamRDFLib;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.shared.NotFoundException;
import org.apache.jena.sparql.resultset.ResultsReader;
import org.apache.jena.sparql.resultset.SPARQLResult;
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
index d5d849a7c6..4e8bc3c456 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterFileManager.java
@@ -30,7 +30,7 @@ import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.riot.RDFLanguages;
-import org.apache.jena.riot.system.stream.*;
+import org.apache.jena.riot.system.streammgr.*;
import org.apache.jena.shared.NotFoundException;
import org.apache.jena.util.FileManager;
import org.apache.jena.util.FileUtils;
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java
b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java
index 8040f86366..98e049beb0 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLib.java
@@ -21,7 +21,7 @@ package org.apache.jena.riot.adapters;
import org.apache.jena.atlas.lib.Lib;
import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.riot.RiotException;
-import org.apache.jena.riot.system.stream.*;
+import org.apache.jena.riot.system.streammgr.*;
class AdapterLib {
public static org.apache.jena.util.TypedStream convert(TypedInputStream
in) {
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocationMapper.java
b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocationMapper.java
index 6251534750..39571f0065 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocationMapper.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocationMapper.java
@@ -21,7 +21,7 @@ package org.apache.jena.riot.adapters;
import java.util.Iterator ;
import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.riot.system.stream.LocationMapper ;
+import org.apache.jena.riot.system.streammgr.LocationMapper;
/** Adapter from Jena core LocationMapper to RIOT LocationMapper */
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocator.java
b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocator.java
index 7cbedac4cf..4f65b13d46 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocator.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterLocator.java
@@ -19,7 +19,7 @@
package org.apache.jena.riot.adapters;
import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.riot.system.stream.Locator ;
+import org.apache.jena.riot.system.streammgr.Locator;
public class AdapterLocator implements org.apache.jena.util.Locator
{
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/rowset/QueryResults.java
b/jena-arq/src/main/java/org/apache/jena/riot/rowset/QueryResults.java
index 8366645778..87a803f217 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/rowset/QueryResults.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/rowset/QueryResults.java
@@ -24,7 +24,7 @@ import java.util.Objects;
import org.apache.jena.atlas.web.ContentType;
import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.riot.*;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.sparql.exec.QueryExecResult;
import org.apache.jena.sparql.exec.RowSet;
import org.apache.jena.sparql.util.Context;
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorClassLoader.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorClassLoader.java
deleted file mode 100644
index 4c458d6bd0..0000000000
---
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorClassLoader.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.riot.system.stream;
-
-import java.io.InputStream ;
-
-import org.apache.jena.atlas.web.ContentType ;
-import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.riot.RDFLanguages ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-/** LocatorClassLoader provides access to Java resources.
- * File names should be an exact match for the java resource, i.e. no "file:"
- * There is no scheme name for Java resources.
- */
-public class LocatorClassLoader implements Locator
-{
- static Logger log = LoggerFactory.getLogger(LocatorClassLoader.class) ;
-
- private final ClassLoader classLoader ;
- public LocatorClassLoader(ClassLoader _classLoader)
- {
- classLoader =_classLoader ;
- }
-
- @Override
- public boolean equals( Object other )
- {
- return
- other instanceof LocatorClassLoader
- && classLoader == ((LocatorClassLoader) other).classLoader;
- }
-
- @Override
- public int hashCode()
- { return classLoader.hashCode(); }
-
- @Override
- public TypedInputStream open(String resourceName)
- {
- if ( classLoader == null )
- return null ;
-
- InputStream in = null;
- try { in = classLoader.getResourceAsStream(resourceName) ; } catch
(Exception ex) {}
- if ( in == null )
- {
- if ( StreamManager.logAllLookups && log.isTraceEnabled() )
- log.trace("Failed to open: "+resourceName) ;
- return null ;
- }
-
- if ( StreamManager.logAllLookups && log.isTraceEnabled() )
- log.trace("Found: "+resourceName) ;
-
- ContentType ct = RDFLanguages.guessContentType(resourceName) ;
- // No sensible base URI.
- return new TypedInputStream(in, ct, null) ;
- }
-
- public ClassLoader getClassLoader()
- {
- return classLoader ;
- }
-
- @Override
- public String getName() { return "ClassLoaderLocator" ; }
-
-}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFile.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFile.java
deleted file mode 100644
index 3c96b56821..0000000000
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFile.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.riot.system.stream;
-
-import java.io.File ;
-import java.io.IOException ;
-import java.io.InputStream ;
-
-import org.apache.jena.atlas.io.IO ;
-import org.apache.jena.atlas.lib.IRILib ;
-import org.apache.jena.atlas.web.ContentType ;
-import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.irix.IRIs;
-import org.apache.jena.riot.RDFLanguages ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-/** Location files in the filing system.
- * A FileLocator can have a "current directory" - this is separate from any
- * location mapping (see {@link LocationMapper}) as it applies only to files.
- */
-
-public class LocatorFile implements Locator
-{
- static Logger log = LoggerFactory.getLogger(LocatorFile.class) ;
- private final String thisDir ;
- private final String thisDirLogStr ;
-
- /** Create a LocatorFile without a specific working directory.
- * Relative file names are relative to the working directory of the JVM.
- */
- public LocatorFile() { this(null) ; }
-
- /** Create a LocatorFile that uses the argument as it's working directory.
- * <p>
- * The working directory should be a UNIX style file name,
- * (relative or absolute), not a URI.
- * <p>
- * For MS Window, if asked to {@link #open} a file name with a drive
letter,
- * the code assumes it is not relative to the working directory
- * of this {@code LocatorFile}.
- */
- public LocatorFile(String dir)
- {
- if ( dir != null )
- {
- if ( dir.endsWith("/") || dir.endsWith(java.io.File.separator) )
- dir = dir.substring(0,dir.length()-1) ;
- thisDirLogStr = " ["+dir+"]" ;
- }
- else
- thisDirLogStr = "" ;
- thisDir = dir ;
- }
-
- /** Processing the filename for file: or relative filename
- * and return a filename suitable for file operations.
- */
- public String toFileName(String filenameIRI)
- {
- // Do not use directly : it will ignore the directory.
- //IRILib.filenameToIRI
-
- String scheme = IRIs.scheme(filenameIRI) ;
- String fn = filenameIRI ;
- // Windows : C:\\ is not a scheme name!
- if ( scheme != null )
- {
- if ( scheme.length() == 1 )
- {
- // Not perfect for MS Windows but if thisDir is set then
- // the main use case is resolving relative (no drive)
- // filenames against thisDir. Treat the presence of a
- // drive letter as making this a JVM relative filename.
- return fn ;
- }
- else if ( scheme.length() > 1 )
- {
- if ( ! scheme.equalsIgnoreCase("file") )
- // Not file: IRI
- return null ;
- fn = IRILib.IRIToFilename(filenameIRI) ;
- // fall through
- }
- }
- // fn is the file name to use.
- return absolute(fn) ;
- }
-
- /** Make a filename (no URI scheme, no windows drive) absolute if there is
- * a setting for directory name thisDir
- */
- private String absolute(String fn)
- {
- if ( thisDir != null && ! fn.startsWith("/") && !
fn.startsWith(File.separator) )
- fn = thisDir+File.separator+fn ;
- return fn ;
- }
-
- public String getThisDir()
- {
- return thisDir ;
- }
-
- public boolean hasCurrentDir()
- {
- return thisDir != null ;
- }
-
- public boolean exists(String fileIRI)
- {
- String fn = toFileName(fileIRI) ;
- if ( fn == null )
- return false ;
-
- return exists$(fn) ;
- }
-
- private boolean exists$(String fn)
- {
- if ( fn.equals("-") )
- return true ;
- return new File(fn).exists() ;
- }
-
- /** Open anything that looks a bit like a file name */
- @Override
- public TypedInputStream open(String filenameIRI)
- {
- String fn = toFileName(filenameIRI) ;
- if ( fn == null )
- return null ;
-
- try {
- if ( ! exists$(fn) )
- {
- if ( StreamManager.logAllLookups && log.isTraceEnabled())
- log.trace("Not found: "+filenameIRI+thisDirLogStr) ;
- return null ;
- }
- } catch (Exception e) {
- log.warn("Security problem testing for file", e);
- return null;
- }
-
- try {
- InputStream in = IO.openFileEx(fn) ;
-
- if ( StreamManager.logAllLookups && log.isTraceEnabled() )
- log.trace("Found: "+filenameIRI+thisDirLogStr) ;
-
- ContentType ct = RDFLanguages.guessContentType(filenameIRI) ;
- return new TypedInputStream(in, ct, filenameIRI) ;
- } catch (IOException ioEx)
- {
- // Includes FileNotFoundException
- // We already tested whether the file exists or not.
- log.warn("File unreadable (but exists): "+fn+" Exception:
"+ioEx.getMessage()) ;
- return null ;
- }
- }
-
- @Override
- public String getName()
- {
- String tmp = "LocatorFile" ;
- if ( thisDir != null )
- tmp = tmp+"("+thisDir+")" ;
- return tmp ;
- }
-
- @Override
- public int hashCode()
- {
- final int prime = 31 ;
- int result = 1 ;
- result = prime * result + ((thisDir == null) ? 0 : thisDir.hashCode())
;
- result = prime * result + ((thisDirLogStr == null) ? 0 :
thisDirLogStr.hashCode()) ;
- return result ;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj) return true ;
- if (obj == null) return false ;
- if (getClass() != obj.getClass()) return false ;
- LocatorFile other = (LocatorFile)obj ;
- if (thisDir == null)
- {
- if (other.thisDir != null) return false ;
- } else
- if (!thisDir.equals(other.thisDir)) return false ;
- if (thisDirLogStr == null)
- {
- if (other.thisDirLogStr != null) return false ;
- } else
- if (!thisDirLogStr.equals(other.thisDirLogStr)) return false ;
- return true ;
- }
-}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorZip.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorZip.java
deleted file mode 100644
index 2d71a8aee6..0000000000
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorZip.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.riot.system.stream;
-
-import java.io.IOException ;
-import java.io.InputStream ;
-import java.util.zip.ZipEntry ;
-import java.util.zip.ZipFile ;
-
-import org.apache.jena.atlas.web.ContentType ;
-import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.riot.RDFLanguages ;
-import org.apache.jena.shared.JenaException ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-/** Location files in a zip file */
-public class LocatorZip implements Locator
-{
- private static Logger log = LoggerFactory.getLogger(LocatorZip.class) ;
- private final String zipFileName ;
- private final ZipFile zipFile ;
-
- public LocatorZip(String zfn)
- {
- try {
- zipFileName = zfn ;
- zipFile = new ZipFile(zipFileName) ;
- } catch (IOException ex)
- {
- throw new JenaException("Problems accessing "+zfn, ex) ;
- }
- }
-
- @Override
- public TypedInputStream open(String filenameOrURI)
- {
- ZipEntry entry = zipFile.getEntry(filenameOrURI) ;
- if ( entry == null )
- {
- if ( StreamManager.logAllLookups && log.isDebugEnabled() )
- log.debug("Not found: "+zipFileName+" : "+filenameOrURI) ;
- return null ;
-
- }
- try
- {
- InputStream in = zipFile.getInputStream(entry) ;
-
- if ( in == null )
- {
- if ( StreamManager.logAllLookups && log.isTraceEnabled() )
- log.trace("Not found: "+filenameOrURI) ;
- return null ;
- }
-
- if ( StreamManager.logAllLookups && log.isTraceEnabled() )
- log.trace("Found: "+filenameOrURI) ;
-
- ContentType ct = RDFLanguages.guessContentType(filenameOrURI) ;
- return new TypedInputStream(in, ct, filenameOrURI) ;
- }
- catch (IOException ex)
- {
- log.warn("IO Exception opening zip entry: " + filenameOrURI);
- return null;
- }
- }
-
- public String getZipFileName()
- {
- return zipFileName ;
- }
-
- @Override
- public String getName() { return "LocatorZip("+zipFileName+")" ; }
-
- @Override
- public int hashCode()
- {
- final int prime = 31 ;
- int result = 1 ;
- result = prime * result + ((zipFileName == null) ? 0 :
zipFileName.hashCode()) ;
- return result ;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj) return true ;
- if (obj == null) return false ;
- if (getClass() != obj.getClass()) return false ;
- LocatorZip other = (LocatorZip)obj ;
- if (zipFileName == null)
- {
- if (other.zipFileName != null) return false ;
- } else
- if (!zipFileName.equals(other.zipFileName)) return false ;
- return true ;
- }
-
-}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/JenaIOEnvironment.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java
similarity index 91%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/JenaIOEnvironment.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java
index b537358aa5..a7da3baecd 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/JenaIOEnvironment.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java
@@ -16,21 +16,21 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream;
+package org.apache.jena.riot.system.streammgr;
-import java.util.StringTokenizer ;
+import java.util.StringTokenizer;
-import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.rdf.model.*;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFLanguages;
import org.apache.jena.riot.RDFParser;
-import org.apache.jena.riot.adapters.AdapterFileManager ;
-import org.apache.jena.shared.JenaException ;
+import org.apache.jena.riot.adapters.AdapterFileManager;
+import org.apache.jena.shared.JenaException;
import org.apache.jena.util.SystemUtils;
-import org.apache.jena.vocabulary.LocationMappingVocab ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
+import org.apache.jena.vocabulary.LocationMappingVocab;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/** Code for using the general facilities of the location mapper/ filemanager
subsystem
* and set up for Jena usage. e.g. find a location mapper with RDf
description.
@@ -58,11 +58,11 @@ public class JenaIOEnvironment
/** The default path for searching for the location mapper */
public static final String DEFAULT_PATH =
"location-mapping.ttl;location-mapping.rdf;"+
- "etc/location-mapping.rdf;etc/location-mapping.ttl" ;
- public static final String GlobalMapperSystemProperty1 =
"http://jena.hpl.hp.com/2004/08/LocationMap" ;
- public static final String GlobalMapperSystemProperty2 = "LocationMap" ;
+ "etc/location-mapping.rdf;etc/location-mapping.ttl";
+ public static final String GlobalMapperSystemProperty1 =
"http://jena.hpl.hp.com/2004/08/LocationMap";
+ public static final String GlobalMapperSystemProperty2 = "LocationMap";
- static String s_globalMapperPath = null ;
+ static String s_globalMapperPath = null;
static private String getGlobalConfigPath() {
if ( s_globalMapperPath == null )
@@ -99,7 +99,7 @@ public class JenaIOEnvironment
LocationMapper locMap = new LocationMapper();
StmtIterator mappings = m.listStatements(null,
LocationMappingVocab.mapping, (RDFNode)null);
- for ( ; mappings.hasNext() ; ) {
+ for (; mappings.hasNext(); ) {
Statement s = mappings.nextStatement();
Resource mapping = s.getResource();
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocationMapper.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocationMapper.java
similarity index 75%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocationMapper.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocationMapper.java
index 28df4c8e52..54861d62f9 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocationMapper.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocationMapper.java
@@ -16,18 +16,18 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream;
+package org.apache.jena.riot.system.streammgr;
-import java.util.Iterator ;
-import java.util.Map ;
+import java.util.Iterator;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.ModelFactory ;
-import org.apache.jena.rdf.model.Resource ;
-import org.apache.jena.vocabulary.LocationMappingVocab ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.vocabulary.LocationMappingVocab;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Alternative locations for URIs. Maintains two maps:
@@ -43,9 +43,9 @@ import org.slf4j.LoggerFactory ;
public class LocationMapper
{
- private static Logger log = LoggerFactory.getLogger(LocationMapper.class)
;
- private Map<String, String> altLocations = new ConcurrentHashMap<>() ;
- private Map<String, String> altPrefixes = new ConcurrentHashMap<>() ;
+ private static Logger log = LoggerFactory.getLogger(LocationMapper.class) ;
+ private Map<String, String> altLocations = new ConcurrentHashMap<>();
+ private Map<String, String> altPrefixes = new ConcurrentHashMap<>();
/** Create a LocationMapper with no mapping yet */
public LocationMapper() { }
@@ -53,19 +53,19 @@ public class LocationMapper
/** Deep copy of location and prefix maps */
@Override
public LocationMapper clone() {
- return clone(this) ;
+ return clone(this);
}
private static LocationMapper clone(LocationMapper other) {
- LocationMapper mapper = new LocationMapper() ;
- mapper.altLocations.putAll(other.altLocations) ;
- mapper.altPrefixes.putAll(other.altPrefixes) ;
- return mapper ;
+ LocationMapper mapper = new LocationMapper();
+ mapper.altLocations.putAll(other.altLocations);
+ mapper.altPrefixes.putAll(other.altPrefixes);
+ return mapper;
}
public void copyFrom(LocationMapper lmap2) {
- this.altLocations.putAll(lmap2.altLocations) ;
- this.altPrefixes.putAll(lmap2.altPrefixes) ;
+ this.altLocations.putAll(lmap2.altLocations);
+ this.altPrefixes.putAll(lmap2.altPrefixes);
}
public boolean containsMapping(String uri) {
@@ -73,7 +73,7 @@ public class LocationMapper
}
public String altMapping(String uri) {
- return altMapping(uri, uri) ;
+ return altMapping(uri, uri);
}
/**
@@ -89,9 +89,9 @@ public class LocationMapper
if ( altLocations.isEmpty() && altPrefixes.isEmpty() )
return otherwise;
if ( altLocations.containsKey(uri) )
- return altLocations.get(uri) ;
- String newStart = null ;
- String oldStart = null ;
+ return altLocations.get(uri);
+ String newStart = null;
+ String oldStart = null;
for ( String prefix : altPrefixes.keySet() )
{
if ( uri.startsWith( prefix ) )
@@ -106,43 +106,43 @@ public class LocationMapper
}
if ( newStart != null )
- return newStart + uri.substring(oldStart.length()) ;
+ return newStart + uri.substring(oldStart.length());
- return otherwise ;
+ return otherwise;
}
public void addAltEntry(String uri, String alt) {
- altLocations.put(uri, alt) ;
+ altLocations.put(uri, alt);
}
public void addAltPrefix(String uriPrefix, String altPrefix) {
- altPrefixes.put(uriPrefix, altPrefix) ;
+ altPrefixes.put(uriPrefix, altPrefix);
}
/** Iterate over all the entries registered */
public Iterator<String> listAltEntries() {
- return altLocations.keySet().iterator() ;
+ return altLocations.keySet().iterator();
}
/** Iterate over all the prefixes registered */
public Iterator<String> listAltPrefixes() {
- return altPrefixes.keySet().iterator() ;
+ return altPrefixes.keySet().iterator();
}
public void removeAltEntry(String uri) {
- altLocations.remove(uri) ;
+ altLocations.remove(uri);
}
public void removeAltPrefix(String uriPrefix) {
- altPrefixes.remove(uriPrefix) ;
+ altPrefixes.remove(uriPrefix);
}
public String getAltEntry(String uri) {
- return altLocations.get(uri) ;
+ return altLocations.get(uri);
}
public String getAltPrefix(String uriPrefix) {
- return altPrefixes.get(uriPrefix) ;
+ return altPrefixes.get(uriPrefix);
}
/** Iterate over all the entries registered */
@@ -152,29 +152,29 @@ public class LocationMapper
@Override
public int hashCode() {
- int x = 0 ;
- x = x ^ altLocations.hashCode() ;
- x = x ^ altPrefixes.hashCode() ;
- return x ;
+ int x = 0;
+ x = x ^ altLocations.hashCode();
+ x = x ^ altPrefixes.hashCode();
+ return x;
}
@Override
public boolean equals(Object obj) {
if ( !(obj instanceof LocationMapper) )
- return false ;
- LocationMapper other = (LocationMapper)obj ;
+ return false;
+ LocationMapper other = (LocationMapper)obj;
if ( !this.altLocations.equals(other.altLocations) )
- return false ;
+ return false;
if ( !this.altPrefixes.equals(other.altPrefixes) )
- return false ;
- return true ;
+ return false;
+ return true;
}
@Override
public String toString() {
- String s = "" ;
+ String s = "";
for ( String k : altLocations.keySet() )
{
String v = altLocations.get( k );
@@ -186,14 +186,14 @@ public class LocationMapper
String v = altPrefixes.get( k );
s = s + "(Prefix:" + k + "=>" + v + ") ";
}
- return s ;
+ return s;
}
public Model toModel() {
- Model m = ModelFactory.createDefaultModel() ;
- m.setNsPrefix("lmap",
"http://jena.hpl.hp.com/2004/08/location-mapping#") ;
- toModel(m) ;
- return m ;
+ Model m = ModelFactory.createDefaultModel();
+ m.setNsPrefix("lmap",
"http://jena.hpl.hp.com/2004/08/location-mapping#");
+ toModel(m);
+ return m;
}
public void toModel(Model model) {
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/Locator.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/Locator.java
similarity index 84%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/Locator.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/Locator.java
index 73e932257f..0bac4a35b4 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/Locator.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/Locator.java
@@ -16,9 +16,9 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream;
+package org.apache.jena.riot.system.streammgr;
-import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.atlas.web.TypedInputStream;
/**
* Interface to things that open TypedStreams from a place
@@ -27,6 +27,6 @@ import org.apache.jena.atlas.web.TypedInputStream ;
public interface Locator
{
// Open a stream given a name of some kind (not necessarily an IRI).
- public TypedInputStream open(String uri) ;
- public String getName() ;
+ public TypedInputStream open(String uri);
+ public String getName();
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorClassLoader.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorClassLoader.java
new file mode 100644
index 0000000000..f7b8c27623
--- /dev/null
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorClassLoader.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.system.streammgr;
+
+import java.io.InputStream;
+
+import org.apache.jena.atlas.web.ContentType;
+import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.riot.RDFLanguages;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * LocatorClassLoader provides access to Java resources. File names should be
an
+ * exact match for the java resource, i.e. no "file:" There is no scheme name
for
+ * Java resources.
+ */
+public class LocatorClassLoader implements Locator {
+ static Logger log = LoggerFactory.getLogger(LocatorClassLoader.class);
+
+ private final ClassLoader classLoader;
+ public LocatorClassLoader(ClassLoader _classLoader) {
+ classLoader = _classLoader;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ return other instanceof LocatorClassLoader && classLoader ==
((LocatorClassLoader)other).classLoader;
+ }
+
+ @Override
+ public int hashCode() {
+ return classLoader.hashCode();
+ }
+
+ @Override
+ public TypedInputStream open(String resourceName) {
+ if ( classLoader == null )
+ return null;
+
+ InputStream in = null;
+ try {
+ in = classLoader.getResourceAsStream(resourceName);
+ } catch (Exception ex) {}
+ if ( in == null ) {
+ if ( StreamManager.logAllLookups && log.isTraceEnabled() )
+ log.trace("Failed to open: " + resourceName);
+ return null;
+ }
+
+ if ( StreamManager.logAllLookups && log.isTraceEnabled() )
+ log.trace("Found: " + resourceName);
+
+ ContentType ct = RDFLanguages.guessContentType(resourceName);
+ // No sensible base URI.
+ return new TypedInputStream(in, ct, null);
+ }
+
+ public ClassLoader getClassLoader() {
+ return classLoader;
+ }
+
+ @Override
+ public String getName() {
+ return "ClassLoaderLocator";
+ }
+
+}
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/streammgr/LocatorFTP.java
similarity index 77%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorFTP.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorFTP.java
index 1b1035b339..69ad7b7692 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/streammgr/LocatorFTP.java
@@ -16,26 +16,26 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream ;
+package org.apache.jena.riot.system.streammgr;
import org.apache.jena.atlas.web.HttpException;
-import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.http.HttpOp;
-import org.apache.jena.riot.RiotException ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
+import org.apache.jena.riot.RiotException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/** Support for resources using the "ftp:" scheme */
public class LocatorFTP extends LocatorURL {
- private static Logger log =
LoggerFactory.getLogger(LocatorFTP.class) ;
- private static final String[] schemeNames = { "ftp" } ;
+ private static Logger log =
LoggerFactory.getLogger(LocatorFTP.class);
+ private static final String[] schemeNames = { "ftp" };
public LocatorFTP() {
- super(schemeNames) ;
+ super(schemeNames);
}
@Override
- protected Logger log() { return log ; }
+ protected Logger log() { return log; }
@Override
public TypedInputStream performOpen(String uri) {
@@ -44,19 +44,19 @@ public class LocatorFTP extends LocatorURL {
return HttpOp.httpGet(uri);
}
catch (HttpException ex) {
- throw new RiotException("Bad FTP URL: "+uri, ex) ;
+ throw new RiotException("Bad FTP URL: "+uri, ex);
}
}
- return null ;
+ return null;
}
@Override
public String getName() {
- return "LocatorFTP" ;
+ return "LocatorFTP";
}
@Override
public int hashCode() {
- return 57 ;
+ return 57;
}
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorFile.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorFile.java
new file mode 100644
index 0000000000..bea2bffe78
--- /dev/null
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorFile.java
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.system.streammgr;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.jena.atlas.io.IO;
+import org.apache.jena.atlas.lib.IRILib;
+import org.apache.jena.atlas.web.ContentType;
+import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.irix.IRIs;
+import org.apache.jena.riot.RDFLanguages;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Location files in the filing system. A FileLocator can have a "current
directory"
+ * - this is separate from any location mapping (see {@link LocationMapper})
as it
+ * applies only to files.
+ */
+
+public class LocatorFile implements Locator {
+ static Logger log = LoggerFactory.getLogger(LocatorFile.class);
+ private final String thisDir;
+ private final String thisDirLogStr;
+
+ /**
+ * Create a LocatorFile without a specific working directory. Relative
file names
+ * are relative to the working directory of the JVM.
+ */
+ public LocatorFile() {
+ this(null);
+ }
+
+ /**
+ * Create a LocatorFile that uses the argument as it's working directory.
+ * <p>
+ * The working directory should be a UNIX style file name, (relative or
+ * absolute), not a URI.
+ * <p>
+ * For MS Window, if asked to {@link #open} a file name with a drive
letter, the
+ * code assumes it is not relative to the working directory of this
+ * {@code LocatorFile}.
+ */
+ public LocatorFile(String dir) {
+ if ( dir != null ) {
+ if ( dir.endsWith("/") || dir.endsWith(java.io.File.separator) )
+ dir = dir.substring(0, dir.length() - 1);
+ thisDirLogStr = " [" + dir + "]";
+ } else
+ thisDirLogStr = "";
+ thisDir = dir;
+ }
+
+ /**
+ * Processing the filename for file: or relative filename and return a
filename
+ * suitable for file operations.
+ */
+ public String toFileName(String filenameIRI) {
+ // Do not use directly : it will ignore the directory.
+ // IRILib.filenameToIRI
+
+ String scheme = IRIs.scheme(filenameIRI);
+ String fn = filenameIRI;
+ // Windows : C:\\ is not a scheme name!
+ if ( scheme != null ) {
+ if ( scheme.length() == 1 ) {
+ // Not perfect for MS Windows but if thisDir is set then
+ // the main use case is resolving relative (no drive)
+ // filenames against thisDir. Treat the presence of a
+ // drive letter as making this a JVM relative filename.
+ return fn;
+ } else if ( scheme.length() > 1 ) {
+ if ( !scheme.equalsIgnoreCase("file") )
+ // Not file: IRI
+ return null;
+ fn = IRILib.IRIToFilename(filenameIRI);
+ // fall through
+ }
+ }
+ // fn is the file name to use.
+ return absolute(fn);
+ }
+
+ /**
+ * Make a filename (no URI scheme, no windows drive) absolute if there is a
+ * setting for directory name thisDir
+ */
+ private String absolute(String fn) {
+ if ( thisDir != null && !fn.startsWith("/") &&
!fn.startsWith(File.separator) )
+ fn = thisDir + File.separator + fn;
+ return fn;
+ }
+
+ public String getThisDir() {
+ return thisDir;
+ }
+
+ public boolean hasCurrentDir() {
+ return thisDir != null;
+ }
+
+ public boolean exists(String fileIRI) {
+ String fn = toFileName(fileIRI);
+ if ( fn == null )
+ return false;
+
+ return exists$(fn);
+ }
+
+ private boolean exists$(String fn) {
+ if ( fn.equals("-") )
+ return true;
+ return new File(fn).exists();
+ }
+
+ /** Open anything that looks a bit like a file name */
+ @Override
+ public TypedInputStream open(String filenameIRI) {
+ String fn = toFileName(filenameIRI);
+ if ( fn == null )
+ return null;
+
+ try {
+ if ( !exists$(fn) ) {
+ if ( StreamManager.logAllLookups && log.isTraceEnabled() )
+ log.trace("Not found: " + filenameIRI + thisDirLogStr);
+ return null;
+ }
+ } catch (Exception e) {
+ log.warn("Security problem testing for file", e);
+ return null;
+ }
+
+ try {
+ InputStream in = IO.openFileEx(fn);
+
+ if ( StreamManager.logAllLookups && log.isTraceEnabled() )
+ log.trace("Found: " + filenameIRI + thisDirLogStr);
+
+ ContentType ct = RDFLanguages.guessContentType(filenameIRI);
+ return new TypedInputStream(in, ct, filenameIRI);
+ } catch (IOException ioEx) {
+ // We already tested whether the file exists or not.
+ log.warn("File unreadable (but exists): " + fn + " : " +
ioEx.getMessage());
+ return null;
+ }
+ }
+
+ @Override
+ public String getName() {
+ String tmp = "LocatorFile";
+ if ( thisDir != null )
+ tmp = tmp + "(" + thisDir + ")";
+ return tmp;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((thisDir == null) ? 0 : thisDir.hashCode());
+ result = prime * result + ((thisDirLogStr == null) ? 0 :
thisDirLogStr.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj )
+ return true;
+ if ( obj == null )
+ return false;
+ if ( getClass() != obj.getClass() )
+ return false;
+ LocatorFile other = (LocatorFile)obj;
+ if ( thisDir == null ) {
+ if ( other.thisDir != null )
+ return false;
+ } else if ( !thisDir.equals(other.thisDir) )
+ return false;
+ if ( thisDirLogStr == null ) {
+ if ( other.thisDirLogStr != null )
+ return false;
+ } else if ( !thisDirLogStr.equals(other.thisDirLogStr) )
+ return false;
+ return true;
+ }
+}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorHTTP.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorHTTP.java
similarity index 78%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorHTTP.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorHTTP.java
index a1167e36b5..6cd62a7ef5 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorHTTP.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorHTTP.java
@@ -16,40 +16,40 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream ;
+package org.apache.jena.riot.system.streammgr;
-import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.http.HttpOp;
-import org.apache.jena.riot.WebContent ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
+import org.apache.jena.riot.WebContent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/** Support for resources using the "http:" and "https" schemes */
public class LocatorHTTP extends LocatorURL {
- private static Logger log =
LoggerFactory.getLogger(LocatorHTTP.class) ;
- private static final String[] schemeNames = {"http", "https"} ;
+ private static Logger log =
LoggerFactory.getLogger(LocatorHTTP.class);
+ private static final String[] schemeNames = {"http", "https"};
public LocatorHTTP() {
- super(schemeNames) ;
+ super(schemeNames);
}
@Override
- protected Logger log() { return log ; }
+ protected Logger log() { return log; }
@Override
public TypedInputStream performOpen(String uri) {
if ( uri.startsWith("http://") || uri.startsWith("https://") )
- return HttpOp.httpGet(uri, WebContent.defaultRDFAcceptHeader) ;
- return null ;
+ return HttpOp.httpGet(uri, WebContent.defaultRDFAcceptHeader);
+ return null;
}
@Override
public String getName() {
- return "LocatorHTTP" ;
+ return "LocatorHTTP";
}
@Override
public int hashCode() {
- return 57 ;
+ return 57;
}
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorStdin.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorStdin.java
similarity index 86%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorStdin.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorStdin.java
index 827c74bd27..19786a67ef 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorStdin.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorStdin.java
@@ -16,17 +16,17 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream;
+package org.apache.jena.riot.system.streammgr;
-import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.atlas.web.TypedInputStream;
/** Locator for the resource called "-" mapped to {@code System.in}. */
public class LocatorStdin implements Locator {
@Override
public TypedInputStream open(String uri) {
if ( uri.equals("-") )
- return TypedInputStream.wrap(System.in) ;
- return null ;
+ return TypedInputStream.wrap(System.in);
+ return null;
}
@Override
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorURL.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorURL.java
similarity index 97%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorURL.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorURL.java
index ad75936e8b..6922dc782d 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/LocatorURL.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorURL.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream;
+package org.apache.jena.riot.system.streammgr;
import org.apache.jena.atlas.lib.Lib;
import org.apache.jena.atlas.web.TypedInputStream;
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorZip.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorZip.java
new file mode 100644
index 0000000000..3f73d77a82
--- /dev/null
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/LocatorZip.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.system.streammgr;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import org.apache.jena.atlas.web.ContentType;
+import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.riot.RDFLanguages;
+import org.apache.jena.shared.JenaException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/** Location files in a zip file */
+public class LocatorZip implements Locator {
+ private static Logger log = LoggerFactory.getLogger(LocatorZip.class);
+ private final String zipFileName;
+ private final ZipFile zipFile;
+
+ public LocatorZip(String zfn) {
+ try {
+ zipFileName = zfn;
+ zipFile = new ZipFile(zipFileName);
+ } catch (IOException ex) {
+ throw new JenaException("Problems accessing " + zfn, ex);
+ }
+ }
+
+ @Override
+ public TypedInputStream open(String filenameOrURI) {
+ ZipEntry entry = zipFile.getEntry(filenameOrURI);
+ if ( entry == null ) {
+ if ( StreamManager.logAllLookups && log.isDebugEnabled() )
+ log.debug("Not found: " + zipFileName + " : " + filenameOrURI);
+ return null;
+
+ }
+ try {
+ InputStream in = zipFile.getInputStream(entry);
+
+ if ( in == null ) {
+ if ( StreamManager.logAllLookups && log.isTraceEnabled() )
+ log.trace("Not found: " + filenameOrURI);
+ return null;
+ }
+
+ if ( StreamManager.logAllLookups && log.isTraceEnabled() )
+ log.trace("Found: " + filenameOrURI);
+
+ ContentType ct = RDFLanguages.guessContentType(filenameOrURI);
+ return new TypedInputStream(in, ct, filenameOrURI);
+ } catch (IOException ex) {
+ log.warn("IO Exception opening zip entry: " + filenameOrURI);
+ return null;
+ }
+ }
+
+ public String getZipFileName() {
+ return zipFileName;
+ }
+
+ @Override
+ public String getName() {
+ return "LocatorZip(" + zipFileName + ")";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((zipFileName == null) ? 0 :
zipFileName.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj )
+ return true;
+ if ( obj == null )
+ return false;
+ if ( getClass() != obj.getClass() )
+ return false;
+ LocatorZip other = (LocatorZip)obj;
+ if ( zipFileName == null ) {
+ if ( other.zipFileName != null )
+ return false;
+ } else if ( !zipFileName.equals(other.zipFileName) )
+ return false;
+ return true;
+ }
+
+}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/StreamManager.java
similarity index 76%
rename from
jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java
rename to
jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/StreamManager.java
index 64c774759d..73aa38d077 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/StreamManager.java
@@ -16,19 +16,19 @@
* limitations under the License.
*/
-package org.apache.jena.riot.system.stream ;
+package org.apache.jena.riot.system.streammgr;
-import java.util.ArrayList ;
-import java.util.Collections ;
-import java.util.List ;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import org.apache.jena.atlas.lib.Lib;
-import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.riot.RiotNotFoundException ;
+import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.riot.RiotNotFoundException;
import org.apache.jena.riot.SysRIOT;
import org.apache.jena.sparql.util.Context;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Management of stream opening, including redirecting through a location
mapper
@@ -37,14 +37,14 @@ import org.slf4j.LoggerFactory ;
*/
public class StreamManager {
- private static Logger log =
LoggerFactory.getLogger(StreamManager.class) ;
+ private static Logger log =
LoggerFactory.getLogger(StreamManager.class);
- public static boolean logAllLookups = true ;
+ public static boolean logAllLookups = true;
- private List<Locator> handlers = new ArrayList<>() ;
- private LocationMapper mapper = null ;
+ private List<Locator> handlers = new ArrayList<>();
+ private LocationMapper mapper = null;
- private static StreamManager globalStreamManager ;
+ private static StreamManager globalStreamManager;
/**
* Return a default configuration StreamManager with a {@link LocatorFile},
@@ -57,14 +57,14 @@ public class StreamManager {
.addLocator(new LocatorHTTP())
.addLocator(new LocatorFTP())
.addLocator(new
LocatorClassLoader(StreamManager.class.getClassLoader()));
- return streamManager ;
+ return streamManager;
}
/**
* Return the global {@code StreamManager}.
*/
public static StreamManager get() {
- return globalStreamManager ;
+ return globalStreamManager;
}
/**
@@ -91,10 +91,10 @@ public class StreamManager {
* Set the global {@code StreamManager}.
*/
public static void setGlobal(StreamManager streamManager) {
- globalStreamManager = streamManager ;
+ globalStreamManager = streamManager;
}
- static { setGlobal(createStd()) ; }
+ static { setGlobal(createStd()); }
/** Create a {@code StreamManager} with no locator or location mapper. */
public StreamManager() {}
@@ -102,14 +102,14 @@ public class StreamManager {
/** Create a deep copy of this StreamManager */
@Override
public StreamManager clone() {
- return clone(this) ;
+ return clone(this);
}
private static StreamManager clone(StreamManager other) {
- StreamManager sm = new StreamManager() ;
- sm.handlers.addAll(other.handlers) ;
- sm.mapper = other.mapper == null ? null : other.mapper.clone() ;
- return sm ;
+ StreamManager sm = new StreamManager();
+ sm.handlers.addAll(other.handlers);
+ sm.mapper = other.mapper == null ? null : other.mapper.clone();
+ return sm;
}
/**
@@ -118,14 +118,14 @@ public class StreamManager {
*/
public TypedInputStream open(String filenameOrURI) {
if ( log.isDebugEnabled() )
- log.debug("open(" + filenameOrURI + ")") ;
+ log.debug("open(" + filenameOrURI + ")");
- String uri = mapURI(filenameOrURI) ;
+ String uri = mapURI(filenameOrURI);
if ( log.isDebugEnabled() && !uri.equals(filenameOrURI) )
- log.debug("open: mapped to " + uri) ;
+ log.debug("open: mapped to " + uri);
- return openNoMapOrNull(uri) ;
+ return openNoMapOrNull(uri);
}
/** Test whether a mapping exists */
@@ -136,19 +136,19 @@ public class StreamManager {
/** Apply the mapping of a filename or URI */
public String mapURI(String filenameOrURI) {
if ( mapper == null )
- return filenameOrURI ;
+ return filenameOrURI;
- String uri = mapper.altMapping(filenameOrURI, null) ;
+ String uri = mapper.altMapping(filenameOrURI, null);
if ( uri == null ) {
if ( StreamManager.logAllLookups && log.isDebugEnabled() )
- log.debug("Not mapped: " + filenameOrURI) ;
- uri = filenameOrURI ;
+ log.debug("Not mapped: " + filenameOrURI);
+ uri = filenameOrURI;
} else {
if ( log.isDebugEnabled() )
- log.debug("Mapped: " + filenameOrURI + " => " + uri) ;
+ log.debug("Mapped: " + filenameOrURI + " => " + uri);
}
- return uri ;
+ return uri;
}
/**
@@ -156,10 +156,10 @@ public class StreamManager {
* mapping. Throws RiotNotFoundException if not found.
*/
public TypedInputStream openNoMap(String filenameOrURI) {
- TypedInputStream in = openNoMapOrNull(filenameOrURI) ;
+ TypedInputStream in = openNoMapOrNull(filenameOrURI);
if ( in == null )
- throw new RiotNotFoundException(filenameOrURI) ;
- return in ;
+ throw new RiotNotFoundException(filenameOrURI);
+ return in;
}
/**
@@ -169,19 +169,19 @@ public class StreamManager {
public TypedInputStream openNoMapOrNull(String filenameOrURI) {
for (Locator loc : handlers) {
- TypedInputStream in = loc.open(filenameOrURI) ;
+ TypedInputStream in = loc.open(filenameOrURI);
if ( in != null ) {
if ( log.isDebugEnabled() )
- log.debug("Found: " + filenameOrURI + " (" + loc.getName()
+ ")") ;
- return in ;
+ log.debug("Found: " + filenameOrURI + " (" + loc.getName()
+ ")");
+ return in;
}
}
- return null ;
+ return null;
}
/** Set the location mapping */
public StreamManager locationMapper(LocationMapper mapper) {
- this.mapper = mapper ;
+ this.mapper = mapper;
return this;
}
@@ -193,17 +193,17 @@ public class StreamManager {
/** Return an immutable list of all the handlers */
public List<Locator> locators() {
- return Collections.unmodifiableList(handlers) ;
+ return Collections.unmodifiableList(handlers);
}
/** Remove a locator. */
public void remove(Locator loc) {
- handlers.remove(loc) ;
+ handlers.remove(loc);
}
/** Remove all locators */
public void clearLocators() {
- handlers.clear() ;
+ handlers.clear();
}
/**
@@ -211,7 +211,7 @@ public class StreamManager {
* Returns {@code this} StreamManager.
*/
public StreamManager addLocator(Locator loc) {
- handlers.add(loc) ;
+ handlers.add(loc);
return this;
}
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsReader.java
b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsReader.java
index 94ca0f9a78..122462732d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsReader.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsReader.java
@@ -28,10 +28,7 @@ import org.apache.jena.riot.*;
import org.apache.jena.riot.rowset.RowSetReader;
import org.apache.jena.riot.rowset.RowSetReaderFactory;
import org.apache.jena.riot.rowset.RowSetReaderRegistry;
-//import org.apache.jena.riot.resultset.ResultSetReader;
-//import org.apache.jena.riot.resultset.ResultSetReaderFactory;
-//import org.apache.jena.riot.resultset.ResultSetReaderRegistry;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.sparql.exec.QueryExecResult;
import org.apache.jena.sparql.exec.RowSet;
import org.apache.jena.sparql.util.Context;
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 2625c4865f..bd17f246fa 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
@@ -39,8 +39,8 @@ import org.apache.jena.riot.system.ErrorHandlerFactory;
import org.apache.jena.riot.system.FactoryRDFStd;
import org.apache.jena.riot.system.PrefixMap;
import org.apache.jena.riot.system.PrefixMapFactory;
-import org.apache.jena.riot.system.stream.LocatorFile;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.LocatorFile;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.DatasetGraphFactory;
import org.apache.jena.sparql.graph.GraphFactory;
diff --git
a/jena-arq/src/test/java/org/apache/jena/riot/adapters/TestFileManager.java
b/jena-arq/src/test/java/org/apache/jena/riot/adapters/TestFileManager.java
index 06d9a43c18..71f69ba238 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/adapters/TestFileManager.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/adapters/TestFileManager.java
@@ -31,7 +31,7 @@ import org.apache.jena.ontology.OntModelSpec;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.stream.TestLocationMapper;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.shared.NotFoundException;
import org.apache.jena.util.FileManager;
import org.apache.jena.util.LocationMapper;
@@ -84,7 +84,7 @@ public class TestFileManager
@Test
public void testFileManagerNoFile3() {
- FileManager fileManager = new AdapterFileManager(new StreamManager(),
new org.apache.jena.riot.system.stream.LocationMapper());
+ FileManager fileManager = new AdapterFileManager(new StreamManager(),
new org.apache.jena.riot.system.streammgr.LocationMapper());
fileManager.addLocatorFile();
assertThrows(NotFoundException.class,
()->fileManager.readModelInternal(ModelFactory.createDefaultModel(),
filenameNonExistent));
}
diff --git
a/jena-arq/src/test/java/org/apache/jena/riot/stream/TestLocators.java
b/jena-arq/src/test/java/org/apache/jena/riot/stream/TestLocators.java
index 2086764d5e..a4365641da 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/stream/TestLocators.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/stream/TestLocators.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.riot.WebContent;
-import org.apache.jena.riot.system.stream.LocatorFile;
+import org.apache.jena.riot.system.streammgr.LocatorFile;
public class TestLocators
{
diff --git
a/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
b/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
index 7f97cc34e1..499594b395 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
@@ -35,9 +35,9 @@ import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.riot.RiotNotFoundException;
import org.apache.jena.riot.SysRIOT;
-import org.apache.jena.riot.system.stream.LocatorFile;
-import org.apache.jena.riot.system.stream.LocatorHTTP;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.LocatorFile;
+import org.apache.jena.riot.system.streammgr.LocatorHTTP;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.sparql.util.Context;
public class TestStreamManager {
diff --git
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
index 7d49fdca77..e44a8c91a8 100644
---
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
+++
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
@@ -27,9 +27,9 @@ import org.apache.jena.atlas.lib.DateTimeUtils;
import org.apache.jena.atlas.lib.Version;
import org.apache.jena.fuseki.system.FusekiCore;
import org.apache.jena.query.ARQ;
-import org.apache.jena.riot.system.stream.LocatorFTP;
-import org.apache.jena.riot.system.stream.LocatorHTTP;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.LocatorFTP;
+import org.apache.jena.riot.system.streammgr.LocatorHTTP;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.Symbol;
import org.apache.jena.web.HttpSC;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/Imports.java
b/jena-shacl/src/main/java/org/apache/jena/shacl/Imports.java
index b0d79ca3ce..238580ac91 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/Imports.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/Imports.java
@@ -36,8 +36,8 @@ import org.apache.jena.irix.IRIs;
import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.riot.RDFParser;
import org.apache.jena.riot.RiotParseException;
-import org.apache.jena.riot.system.stream.LocationMapper;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.LocationMapper;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.shacl.sys.ShaclSystem;
import org.apache.jena.sparql.graph.GraphFactory;
import org.apache.jena.system.G;
diff --git a/jena-shex/src/test/java/org/apache/jena/shex/runner/ShexTests.java
b/jena-shex/src/test/java/org/apache/jena/shex/runner/ShexTests.java
index c64fd57a11..e6109ebf8d 100644
--- a/jena-shex/src/test/java/org/apache/jena/shex/runner/ShexTests.java
+++ b/jena-shex/src/test/java/org/apache/jena/shex/runner/ShexTests.java
@@ -29,9 +29,9 @@ import org.apache.jena.atlas.lib.Pair;
import org.apache.jena.atlas.logging.Log;
import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.rdf.model.*;
-import org.apache.jena.riot.system.stream.Locator;
-import org.apache.jena.riot.system.stream.LocatorFile;
-import org.apache.jena.riot.system.stream.StreamManager;
+import org.apache.jena.riot.system.streammgr.Locator;
+import org.apache.jena.riot.system.streammgr.LocatorFile;
+import org.apache.jena.riot.system.streammgr.StreamManager;
import org.apache.jena.shex.expressions.Sx2;
import org.apache.jena.vocabulary.RDF;