You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/01/15 12:25:55 UTC

jena git commit: Clean IRIResolver after JENA-1463, JENA-1462. Make iriFactory a function call.

Repository: jena
Updated Branches:
  refs/heads/master aa25db6c3 -> 9f4010e23


Clean IRIResolver after JENA-1463, JENA-1462. Make iriFactory a function call.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9f4010e2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9f4010e2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9f4010e2

Branch: refs/heads/master
Commit: 9f4010e2334b4845880ca228c28edf3f842a27de
Parents: aa25db6
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Jan 15 12:25:49 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Jan 15 12:25:49 2018 +0000

----------------------------------------------------------------------
 .../apache/jena/riot/checker/CheckerIRI.java    |   2 +-
 .../apache/jena/riot/lang/ReaderRIOTRDFXML.java |   2 +-
 .../org/apache/jena/riot/out/NodeFmtLib.java    |   2 +-
 .../apache/jena/riot/out/NodeFormatterTTL.java  |   2 +-
 .../org/apache/jena/riot/system/Checker.java    |   2 +-
 .../apache/jena/riot/system/IRIResolver.java    | 248 ++++++++++---------
 .../apache/jena/riot/system/PrefixMapBase.java  |   2 +-
 .../apache/jena/riot/system/PrefixMapStd.java   |   2 +-
 .../sparql/expr/nodevalue/NodeFunctions.java    |   2 +-
 .../org/apache/jena/sparql/util/FmtUtils.java   |   2 +-
 .../query/TestParameterizedSparqlString.java    |   2 +-
 .../java/org/apache/jena/riot/lang/TestIRI.java |   2 +-
 .../jena/riot/system/AbstractTestPrefixMap.java |   2 +-
 .../jena/riot/system/TestPrefixMapOther.java    |   4 +-
 jena-cmds/src/main/java/arq/iri.java            |   2 +-
 .../jena/fuseki/validation/IRIValidator.java    |   3 +-
 .../validation/html/IRIValidatorHTML.java       |   2 +-
 .../validation/json/IRIValidatorJSON.java       |   2 +-
 18 files changed, 145 insertions(+), 140 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerIRI.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerIRI.java b/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerIRI.java
index f5d4285..c2c2618 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerIRI.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/checker/CheckerIRI.java
@@ -38,7 +38,7 @@ public class CheckerIRI implements NodeChecker
     private IRIFactory iriFactory ;
 
     public CheckerIRI() {
-        this(ErrorHandlerFactory.getDefaultErrorHandler(), IRIResolver.iriFactory) ;
+        this(ErrorHandlerFactory.getDefaultErrorHandler(), IRIResolver.iriFactory()) ;
     }
 
     public CheckerIRI(ErrorHandler handler, IRIFactory iriFactory) {

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderRIOTRDFXML.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderRIOTRDFXML.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderRIOTRDFXML.java
index eccda5f..4f151ed 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderRIOTRDFXML.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderRIOTRDFXML.java
@@ -125,7 +125,7 @@ public class ReaderRIOTRDFXML  implements ReaderRIOT
         }
         
         if ( JenaRuntime.isRDF11 )
-            arp.getOptions().setIRIFactory(IRIResolver.iriFactory);
+            arp.getOptions().setIRIFactory(IRIResolver.iriFactory());
 
         try {
             if ( reader != null )

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFmtLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFmtLib.java b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFmtLib.java
index 1e54752..9a72249 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFmtLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFmtLib.java
@@ -219,7 +219,7 @@ public class NodeFmtLib
     {
         if ( base == null )
             return null ;
-        IRI baseIRI = IRIResolver.iriFactory.construct(base) ;
+        IRI baseIRI = IRIResolver.iriFactory().construct(base) ;
         IRI rel = baseIRI.relativize(uri, relFlags) ;
         String r = null ;
         try { r = rel.toASCIIString() ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java
index 85fb723..2018823 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java
@@ -52,7 +52,7 @@ public class NodeFormatterTTL extends NodeFormatterNT
         this.prefixMap = prefixMap ;
         this.baseIRI = baseIRI ;
         this.iriResolver = 
-            baseIRI != null ? IRIResolver.iriFactory.construct(baseIRI) : null ;
+            baseIRI != null ? IRIResolver.iriFactory().construct(baseIRI) : null ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/system/Checker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/Checker.java b/jena-arq/src/main/java/org/apache/jena/riot/system/Checker.java
index 37efa29..7789811 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/Checker.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/Checker.java
@@ -49,7 +49,7 @@ public final class Checker
         
         checkLiterals = new CheckerLiterals(handler) ;
        
-        checkURIs = new CheckerIRI(handler, IRIResolver.iriFactory) ;
+        checkURIs = new CheckerIRI(handler, IRIResolver.iriFactory()) ;
         checkBlankNodes = new CheckerBlankNodes(handler) ;
         checkVars = new CheckerVar(handler) ;        
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
index bb5da0e..fd35aa9 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
@@ -16,67 +16,62 @@
  * limitations under the License.
  */
 
-package org.apache.jena.riot.system ;
-
-import java.io.PrintStream ;
-import java.util.concurrent.Callable ;
-
-import org.apache.jena.atlas.lib.Cache ;
-import org.apache.jena.atlas.lib.CacheFactory ;
-import org.apache.jena.atlas.lib.IRILib ;
-import org.apache.jena.iri.IRI ;
-import org.apache.jena.iri.IRIException ;
-import org.apache.jena.iri.IRIFactory ;
-import org.apache.jena.iri.ViolationCodes ;
-import org.apache.jena.iri.impl.PatternCompiler ;
-import org.apache.jena.riot.RiotException ;
-import org.apache.jena.riot.SysRIOT ;
+package org.apache.jena.riot.system;
+
+import java.io.PrintStream;
+import java.util.concurrent.Callable;
+
+import org.apache.jena.atlas.lib.Cache;
+import org.apache.jena.atlas.lib.CacheFactory;
+import org.apache.jena.atlas.lib.IRILib;
+import org.apache.jena.iri.IRI;
+import org.apache.jena.iri.IRIException;
+import org.apache.jena.iri.IRIFactory;
+import org.apache.jena.iri.ViolationCodes;
+import org.apache.jena.iri.impl.PatternCompiler;
+import org.apache.jena.riot.RiotException;
+import org.apache.jena.riot.SysRIOT;
 
 /** IRI handling */
 public abstract class IRIResolver
 {
-    /** The IRI checker setup, focused on paring and languages.
-     *  This is a clean version of jena-iri IRIFactory.iriImplementation(), 
-     *  modified to allow unregistered schemes and allow <file:relative> IRIs.
-     *  
-     *  @see IRIFactory
-     */
-    public static final IRIFactory iriFactory        = new IRIFactory();
     private static boolean         showExceptions    = true;
     
     private static final boolean   ShowResolverSetup = false;
+
+    private static final IRIFactory iriFactoryInst = new IRIFactory();
     static {
         // These two are from IRIFactory.iriImplementation() ...
-        iriFactory.useSpecificationIRI(true) ;
-        iriFactory.useSchemeSpecificRules("*", true) ;
+        iriFactoryInst.useSpecificationIRI(true);
+        iriFactoryInst.useSchemeSpecificRules("*", true);
 
         // Allow relative references for file: URLs.
-        iriFactory.setSameSchemeRelativeReferences("file") ;
+        iriFactoryInst.setSameSchemeRelativeReferences("file");
 
         // Convert "SHOULD" to warning (default is "error").
         // iriFactory.shouldViolation(false,true);
 
         if ( ShowResolverSetup ) {
-            System.out.println("---- Default settings ----") ;
-            printSetting(iriFactory) ;
+            System.out.println("---- Default settings ----");
+            printSetting(iriFactoryInst);
         }
         
-        setErrorWarning(iriFactory, ViolationCodes.UNREGISTERED_IANA_SCHEME, false, false) ;
+        setErrorWarning(iriFactoryInst, ViolationCodes.UNREGISTERED_IANA_SCHEME, false, false);
 
         // Turn off?? (ignored in CheckerIRI.iriViolations anyway).
-        // setErrorWarning(iriFactory, ViolationCodes.LOWERCASE_PREFERRED, false, false) ;
-        // setErrorWarning(iriFactory, ViolationCodes.PERCENT_ENCODING_SHOULD_BE_UPPERCASE, false, false) ;
-        // setErrorWarning(iriFactory, ViolationCodes.SCHEME_PATTERN_MATCH_FAILED, false, false) ;
+        // setErrorWarning(iriFactory, ViolationCodes.LOWERCASE_PREFERRED, false, false);
+        // setErrorWarning(iriFactory, ViolationCodes.PERCENT_ENCODING_SHOULD_BE_UPPERCASE, false, false);
+        // setErrorWarning(iriFactory, ViolationCodes.SCHEME_PATTERN_MATCH_FAILED, false, false);
         
         // NFC tests are not well understood by general developers and these cause confusion.
         // See JENA-864
-        //iriFactory.setIsError(ViolationCodes.NOT_NFC, false) ;
-        //iriFactory.setIsError(ViolationCodes.NOT_NFKC, false) ;
-        //iriFactory.setIsWarning(ViolationCodes.NOT_NFC, false) ;
-        //iriFactory.setIsWarning(ViolationCodes.NOT_NFKC, false) ;
+        //iriFactory.setIsError(ViolationCodes.NOT_NFC, false);
+        //iriFactory.setIsError(ViolationCodes.NOT_NFKC, false);
+        //iriFactory.setIsWarning(ViolationCodes.NOT_NFC, false);
+        //iriFactory.setIsWarning(ViolationCodes.NOT_NFKC, false);
 
         // ** Applies to various unicode blocks. 
-        // setErrorWarning(iriFactory, ViolationCodes.COMPATIBILITY_CHARACTER, false, false) ;
+        // setErrorWarning(iriFactory, ViolationCodes.COMPATIBILITY_CHARACTER, false, false);
 
         // This causes test failures.
         // The tests catch warnings and a warning is expected.
@@ -84,16 +79,16 @@ public abstract class IRIResolver
         //   > as \u003C  and < \u003E 
         // Default is error=true, warning=false.
         // Test pass with error=false, warning=true.
-        // setErrorWarning(iriFactory, ViolationCodes.UNWISE_CHARACTER, false, false) ;
-        setErrorWarning(iriFactory, ViolationCodes.UNDEFINED_UNICODE_CHARACTER, false, false) ;
+        // setErrorWarning(iriFactory, ViolationCodes.UNWISE_CHARACTER, false, false);
+        setErrorWarning(iriFactoryInst, ViolationCodes.UNDEFINED_UNICODE_CHARACTER, false, false);
 
         if ( ShowResolverSetup ) {
-            System.out.println("---- After initialization ----") ;
-            printSetting(iriFactory) ;
+            System.out.println("---- After initialization ----");
+            printSetting(iriFactoryInst);
         }
 
     }
-
+    
     // ---- Initialization support
     
     /** Set the error/warning state of a violation code.
@@ -108,70 +103,82 @@ public abstract class IRIResolver
     }
     
     private static void printSetting(IRIFactory factory) {
-        PrintStream ps = System.out ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.UNREGISTERED_IANA_SCHEME) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.NOT_NFC) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.NOT_NFKC) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.UNWISE_CHARACTER) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.UNDEFINED_UNICODE_CHARACTER) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.COMPATIBILITY_CHARACTER) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.LOWERCASE_PREFERRED) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.PERCENT_ENCODING_SHOULD_BE_UPPERCASE) ;
-        printErrorWarning(ps, iriFactory, ViolationCodes.SCHEME_PATTERN_MATCH_FAILED) ;
-        ps.println() ;
+        PrintStream ps = System.out;
+        printErrorWarning(ps, factory, ViolationCodes.UNREGISTERED_IANA_SCHEME);
+        printErrorWarning(ps, factory, ViolationCodes.NOT_NFC);
+        printErrorWarning(ps, factory, ViolationCodes.NOT_NFKC);
+        printErrorWarning(ps, factory, ViolationCodes.UNWISE_CHARACTER);
+        printErrorWarning(ps, factory, ViolationCodes.UNDEFINED_UNICODE_CHARACTER);
+        printErrorWarning(ps, factory, ViolationCodes.COMPATIBILITY_CHARACTER);
+        printErrorWarning(ps, factory, ViolationCodes.LOWERCASE_PREFERRED);
+        printErrorWarning(ps, factory, ViolationCodes.PERCENT_ENCODING_SHOULD_BE_UPPERCASE);
+        printErrorWarning(ps, factory, ViolationCodes.SCHEME_PATTERN_MATCH_FAILED);
+        ps.println();
     }
     
     private static void printErrorWarning(PrintStream ps, IRIFactory factory, int code) {
         String x = PatternCompiler.errorCodeName(code);
-        ps.printf("%-40s : E:%-5s W:%-5s\n", x, factory.isError(code), factory.isWarning(code)) ;
+        ps.printf("%-40s : E:%-5s W:%-5s\n", x, factory.isError(code), factory.isWarning(code));
+    }
+
+    // ---- System-wide IRI Factory.
+    
+    /** The IRI checker setup, focused on parsing and languages.
+     *  This is a clean version of jena-iri {@link IRIFactory#iriImplementation()} 
+     *  modified to allow unregistered schemes and allow <file:relative> IRIs.
+     *  
+     *  @see IRIFactory
+     */
+    public static IRIFactory iriFactory() {
+        return iriFactoryInst;
     }
 
     // ---- System-wide operations.
     
     /** Check an IRI string (does not resolve it) */
     public static boolean checkIRI(String iriStr) {
-        IRI iri = parseIRI(iriStr) ;
-        return iri.hasViolation(false) ;
+        IRI iri = parseIRI(iriStr);
+        return iri.hasViolation(false);
     }
 
     /** Check an IRI string (does not resolve it) - throw exception if not good */
     public static void validateIRI(String iriStr) throws IRIException {
-        parseIRIex(iriStr) ;
+        parseIRIex(iriStr);
     }
 
     /** Parse an IRI (does not resolve it) */
     public static IRI parseIRI(String iriStr) {
-        return iriFactory.create(iriStr) ;
+        return iriFactory().create(iriStr);
     }
 
     /** Parse an IRI (does not resolve it) - throws exception on a bad IRI */
     public static IRI parseIRIex(String iriStr) throws IRIException {
-        return iriFactory.construct(iriStr) ;
+        return iriFactory().construct(iriStr);
     }
 
     /**
      * The current working directory, as a string.
      */
-    static private String      globalBase         = IRILib.filenameToIRI("./") ;
+    static private String      globalBase         = IRILib.filenameToIRI("./");
 
     // The global resolver may be accessed by multiple threads
     // Other resolvers are not thread safe.
     
-    private static IRIResolver globalResolver ;
+    private static IRIResolver globalResolver;
 
     /**
      * The current global resolver based on the working directory
      */
     static {
-        IRI cwd ;
+        IRI cwd;
         try {
-            cwd = iriFactory.construct(globalBase) ;
+            cwd = iriFactory().construct(globalBase);
         } catch (IRIException e) {
-            System.err.println("Unexpected IRIException in initializer: " + e.getMessage()) ;
-            cwd = iriFactory.create("file:///") ;
-            e.printStackTrace(System.err) ;
+            System.err.println("Unexpected IRIException in initializer: " + e.getMessage());
+            cwd = iriFactory().create("file:///");
+            e.printStackTrace(System.err);
         }
-        globalResolver = new IRIResolverSync(IRIResolver.create(cwd)) ;
+        globalResolver = new IRIResolverSync(IRIResolver.create(cwd));
     }
 
     /**
@@ -182,12 +189,12 @@ public abstract class IRIResolver
      * @return String The filename as an absolute URL
      */
     static public String resolveFileURL(String filename) throws IRIException {
-        IRI r = globalResolver.resolve(filename) ;
+        IRI r = globalResolver.resolve(filename);
         if (!r.getScheme().equalsIgnoreCase("file")) {
             // Pragmatic hack that copes with "c:"
-            return resolveFileURL("./" + filename) ;
+            return resolveFileURL("./" + filename);
         }
-        return r.toString() ;
+        return r.toString();
     }
 
     /**
@@ -202,7 +209,7 @@ public abstract class IRIResolver
      *             If result would not be legal, absolute IRI
      */
     static public IRI resolve(String relStr, String baseStr) throws RiotException {
-        return exceptions(resolveIRI(relStr, baseStr)) ;
+        return exceptions(resolveIRI(relStr, baseStr));
     }
 
     /**
@@ -216,7 +223,7 @@ public abstract class IRIResolver
      *             If result would not be legal, absolute IRI
      */
     static public String resolveString(String relStr, String baseStr) throws RiotException {
-        return exceptions(resolveIRI(relStr, baseStr)).toString() ;
+        return exceptions(resolveIRI(relStr, baseStr)).toString();
     }
 
     /**
@@ -230,7 +237,7 @@ public abstract class IRIResolver
      *             If result would not be legal, absolute IRI
      */
     static public String resolveString(String uriStr) throws RiotException {
-        return exceptions(resolveIRI(uriStr)).toString() ;
+        return exceptions(resolveIRI(uriStr)).toString();
     }
 
     /**
@@ -242,7 +249,7 @@ public abstract class IRIResolver
      * @return String An absolute URI
      */
     static public String resolveStringSilent(String uriStr) throws RiotException {
-        return globalResolver.resolveSilent(uriStr).toString() ;
+        return globalResolver.resolveSilent(uriStr).toString();
     }
 
     /**
@@ -251,44 +258,44 @@ public abstract class IRIResolver
      * initialization of this class).
      */
     public static IRI resolveIRI(String uriStr) {
-        return exceptions(globalResolver.resolve(uriStr)) ;
+        return exceptions(globalResolver.resolve(uriStr));
     }
 
     /*
      * No exception thrown by this method.
      */
     static private IRI resolveIRI(String relStr, String baseStr) {
-        IRI i = iriFactory.create(relStr) ;
+        IRI i = iriFactory().create(relStr);
         if (i.isAbsolute())
             // removes excess . segments
-            return globalResolver.getBaseIRI().create(i) ;
+            return globalResolver.getBaseIRI().create(i);
 
-        IRI base = iriFactory.create(baseStr) ;
-        return base.create(i) ;
+        IRI base = iriFactory().create(baseStr);
+        return base.create(i);
     }
 
     public static IRIResolver create() {
-        return new IRIResolverNormal() ;
+        return new IRIResolverNormal();
     }
 
     public static IRIResolver create(String baseStr) {
-        return new IRIResolverNormal(baseStr) ;
+        return new IRIResolverNormal(baseStr);
     }
 
     public static IRIResolver create(IRI baseIRI) {
-        return new IRIResolverNormal(baseIRI) ;
+        return new IRIResolverNormal(baseIRI);
     }
 
-    // Used for N-triples, N-Quads
+    /** A resolver that does not resolv against a base IRI. */
     public static IRIResolver createNoResolve() {
-        return new IRIResolverNoOp() ;
+        return new IRIResolverNoOp();
     }
 
     /**
      * To allow Eyeball to bypass IRI checking (because it's doing its own)
      */
     public static void suppressExceptions() {
-        showExceptions = false ;
+        showExceptions = false;
     }
 
     /**
@@ -296,16 +303,15 @@ public abstract class IRIResolver
      * 
      * @return String Absolute URI
      */
-
     static public IRI chooseBaseURI() {
-        return globalResolver.getBaseIRI() ;
+        return globalResolver.getBaseIRI();
     }
 
     public String getBaseIRIasString() {
-        IRI iri = getBaseIRI() ;
+        IRI iri = getBaseIRI();
         if (iri == null)
-            return null ;
-        return iri.toString() ;
+            return null;
+        return iri.toString();
     }
 
     /**
@@ -313,7 +319,7 @@ public abstract class IRIResolver
      * 
      * @return String
      */
-    protected abstract IRI getBaseIRI() ;
+    protected abstract IRI getBaseIRI();
 
     /**
      * Resolve a relative URI against the base of this IRIResolver
@@ -325,7 +331,7 @@ public abstract class IRIResolver
      *             If resulting URI would not be legal, absolute IRI
      */
     public IRI resolve(String uriStr) {
-        return exceptions(resolveSilent(uriStr)) ;
+        return exceptions(resolveSilent(uriStr));
     }
 
     /**
@@ -338,11 +344,11 @@ public abstract class IRIResolver
      * @throws RiotException
      *             If resulting URI would not be legal, absolute IRI
      */
-    public abstract IRI resolveSilent(String uriStr) ;
+    public abstract IRI resolveSilent(String uriStr);
 
     /** Resolving relative IRIs, return a string */
     public String resolveToString(String uriStr) {
-        return resolve(uriStr).toString() ;
+        return resolve(uriStr).toString();
     }
 
     /**
@@ -350,7 +356,7 @@ public abstract class IRIResolver
      * bad a IRI
      */
     public String resolveToStringSilent(String uriStr) {
-        return resolveSilent(uriStr).toString() ;
+        return resolveSilent(uriStr).toString();
     }
 
     protected IRIResolver()
@@ -364,14 +370,14 @@ public abstract class IRIResolver
      */
     private static IRI exceptions(IRI iri) {
         if (!showExceptions)
-            return iri ;
+            return iri;
         if (!iri.hasViolation(false))
-            return iri ;
-        String msg = iri.violations(false).next().getShortMessage() ;
-        throw new RiotException(msg) ;
+            return iri;
+        String msg = iri.violations(false).next().getShortMessage();
+        throw new RiotException(msg);
     }
 
-    private static final int CacheSize = 1000 ;
+    private static final int CacheSize = 1000;
 
     /**
      * A resolver that does not resolve IRIs against base. 
@@ -382,35 +388,35 @@ public abstract class IRIResolver
         protected IRIResolverNoOp()
         {}
 
-        private Cache<String, IRI> resolvedIRIs = CacheFactory.createCache(CacheSize) ;
+        private Cache<String, IRI> resolvedIRIs = CacheFactory.createCache(CacheSize);
 
         @Override
         protected IRI getBaseIRI() {
-            return null ;
+            return null;
         }
 
         @Override
         public IRI resolveSilent(final String uriStr) {
             if ( resolvedIRIs == null ) 
-                return iriFactory.create(uriStr) ;
-            Callable<IRI> filler = () -> iriFactory.create(uriStr) ;
-            IRI iri = resolvedIRIs.getOrFill(uriStr, filler) ;
-            return iri ;
+                return iriFactory().create(uriStr);
+            Callable<IRI> filler = () -> iriFactory().create(uriStr);
+            IRI iri = resolvedIRIs.getOrFill(uriStr, filler);
+            return iri;
         }
 
         @Override
         public String resolveToString(String uriStr) {
-            return uriStr ;
+            return uriStr;
         }
     }
 
     /** Resolving resolver **/
     static class IRIResolverNormal extends IRIResolver
     {
-        final private IRI          base ;
+        final private IRI          base;
         // Not static - contains relative IRIs
         // Could split into absolute (static, global cached) and relative.
-        private Cache<String, IRI> resolvedIRIs = CacheFactory.createCache(CacheSize) ;
+        private Cache<String, IRI> resolvedIRIs = CacheFactory.createCache(CacheSize);
 
         /**
          * Construct an IRIResolver with base as the current working directory.
@@ -443,56 +449,56 @@ public abstract class IRIResolver
 
         @Override
         protected IRI getBaseIRI() {
-            return base ;
+            return base;
         }
 
         @Override
         public IRI resolveSilent(String uriStr) {
             if ( resolvedIRIs == null )
-                return resolveSilentNoCache(uriStr) ;
+                return resolveSilentNoCache(uriStr);
             else
-                return resolveSilentCache(uriStr) ;
+                return resolveSilentCache(uriStr);
         }
         
         private IRI resolveSilentNoCache(String uriStr) {
-            IRI x = IRIResolver.iriFactory.create(uriStr) ;
+            IRI x = IRIResolver.iriFactory().create(uriStr);
             if ( SysRIOT.AbsURINoNormalization ) {
                 // Always process "file:", even in strict mode.
                 // file: is widely used in irregular forms.
                 if ( x.isAbsolute() && ! uriStr.startsWith("file:") )
-                    return x ;
+                    return x;
             }
-            return base.create(x) ;
+            return base.create(x);
         }
 
         private IRI resolveSilentCache(final String uriStr) {
-            Callable<IRI> filler = () -> resolveSilentNoCache(uriStr) ;
-            return resolvedIRIs.getOrFill(uriStr, filler) ;
+            Callable<IRI> filler = () -> resolveSilentNoCache(uriStr);
+            return resolvedIRIs.getOrFill(uriStr, filler);
         }
     }
     
     /** Thread safe wrapper for an IRIResolver */
     static class IRIResolverSync extends IRIResolver
     {
-        private final IRIResolver other ;
+        private final IRIResolver other;
 
-        IRIResolverSync(IRIResolver other) { this.other = other ; }
+        IRIResolverSync(IRIResolver other) { this.other = other; }
         @Override
         synchronized
         protected IRI getBaseIRI() {
-            return other.getBaseIRI() ;
+            return other.getBaseIRI();
         }
 
         @Override
         synchronized
         public IRI resolve(String uriStr) {
-            return other.resolve(uriStr) ;
+            return other.resolve(uriStr);
         }
 
         @Override
         synchronized
         public IRI resolveSilent(String uriStr) {
-            return other.resolveSilent(uriStr) ;
+            return other.resolveSilent(uriStr);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBase.java b/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBase.java
index 63623af..6016bb0 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapBase.java
@@ -64,7 +64,7 @@ public abstract class PrefixMapBase implements PrefixMap {
     
     @Override
     public void add(String prefix, String iriString) {
-        this.add(prefix, IRIResolver.iriFactory.create(iriString));
+        this.add(prefix, IRIResolver.iriFactory().create(iriString));
     }
     
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd.java b/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd.java
index 4c15108..8340b76 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/PrefixMapStd.java
@@ -65,7 +65,7 @@ public class PrefixMapStd extends PrefixMapBase {
     @Override
     public void add(String prefix, String iriString) {
         prefix = canonicalPrefix(prefix);
-        IRI iri = IRIResolver.iriFactory.create(iriString);
+        IRI iri = IRIResolver.iriFactory().create(iriString);
         prefixes.put(prefix, iri);
         uriToPrefix.put(iriString, prefix) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
index 15ef5a7..4a022bb 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
@@ -349,7 +349,7 @@ public class NodeFunctions {
         return node.isLiteral() ;
     }
 
-    private static final IRIFactory iriFactory      = IRIResolver.iriFactory;
+    private static final IRIFactory iriFactory      = IRIResolver.iriFactory();
     public static boolean           warningsForIRIs = false ;
 
     // -------- IRI

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/main/java/org/apache/jena/sparql/util/FmtUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/FmtUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/FmtUtils.java
index 4471e59..8452fbe 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/FmtUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/FmtUtils.java
@@ -462,7 +462,7 @@ public class FmtUtils
     {
         if ( hasScheme(uri) )
             return uri ;
-        IRI baseIRI = IRIResolver.iriFactory.construct(base) ;
+        IRI baseIRI = IRIResolver.iriFactory().construct(base) ;
         IRI rel = baseIRI.relativize(uri, relFlags) ;
         String r = rel.toString() ;
         return r ;

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/test/java/org/apache/jena/query/TestParameterizedSparqlString.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/query/TestParameterizedSparqlString.java b/jena-arq/src/test/java/org/apache/jena/query/TestParameterizedSparqlString.java
index a3afcf1..7335f75 100644
--- a/jena-arq/src/test/java/org/apache/jena/query/TestParameterizedSparqlString.java
+++ b/jena-arq/src/test/java/org/apache/jena/query/TestParameterizedSparqlString.java
@@ -1129,7 +1129,7 @@ public class TestParameterizedSparqlString {
         query.append("SELECT *");
         query.append('\n');
         query.append("WHERE { ?s ");
-        query.appendIri(IRIResolver.iriFactory.construct("http://example.org"));
+        query.appendIri(IRIResolver.iriFactory().construct("http://example.org"));
         query.append(" ?o }");
 
         test(query, new String[] { "SELECT", "*", "\n", "WHERE", "?s", "<http://example.org>", "?o" }, new String[] {});

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
index b976e0a..576f75a 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestIRI.java
@@ -36,7 +36,7 @@ public class TestIRI extends BaseTest
     static protected final ErrorHandler handler = new ErrorHandlerTestLib.ErrorHandlerEx() ;
     static protected final Checker checker = new Checker(new ErrorHandlerTestLib.ErrorHandlerEx()) ;
     
-    static IRIFactory factory = IRIResolver.iriFactory;
+    static IRIFactory factory = IRIResolver.iriFactory();
     
     @Test public void iri1()  { testIRI("http://example/") ; }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/test/java/org/apache/jena/riot/system/AbstractTestPrefixMap.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/system/AbstractTestPrefixMap.java b/jena-arq/src/test/java/org/apache/jena/riot/system/AbstractTestPrefixMap.java
index 09d27f1..4967e54 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/system/AbstractTestPrefixMap.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/system/AbstractTestPrefixMap.java
@@ -27,7 +27,7 @@ import org.junit.Test ;
  * 
  */
 public abstract class AbstractTestPrefixMap extends BaseTest {
-    protected IRIFactory factory = IRIResolver.iriFactory;
+    protected IRIFactory factory = IRIResolver.iriFactory();
 
     /**
      * Gets the prefix map implementation to test, each call should result in a

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-arq/src/test/java/org/apache/jena/riot/system/TestPrefixMapOther.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/system/TestPrefixMapOther.java b/jena-arq/src/test/java/org/apache/jena/riot/system/TestPrefixMapOther.java
index 33d75e2..eb87f50 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/system/TestPrefixMapOther.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/system/TestPrefixMapOther.java
@@ -40,7 +40,7 @@ public class TestPrefixMapOther extends BaseTest
     {
         PrefixMap pmap = PrefixMapFactory.create() ;
         pmap = PrefixMapFactory.unmodifiablePrefixMap(pmap) ;
-        pmap.getMapping().put("ex", IRIResolver.iriFactory.construct("http://example/"))  ;
+        pmap.getMapping().put("ex", IRIResolver.iriFactory().construct("http://example/"))  ;
     }
     
 
@@ -55,7 +55,7 @@ public class TestPrefixMapOther extends BaseTest
     public void other_11()
     {
         PrefixMap pmap = PrefixMapFactory.emptyPrefixMap() ;
-        pmap.getMapping().put("ex", IRIResolver.iriFactory.construct("http://example/"))  ;
+        pmap.getMapping().put("ex", IRIResolver.iriFactory().construct("http://example/"))  ;
     }
     
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-cmds/src/main/java/arq/iri.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/iri.java b/jena-cmds/src/main/java/arq/iri.java
index 4f3cc50..f1de461 100644
--- a/jena-cmds/src/main/java/arq/iri.java
+++ b/jena-cmds/src/main/java/arq/iri.java
@@ -32,7 +32,7 @@ public class iri
     public static void main(String[] args)
     {
         //IRIFactory iriFactory = IRIFactory.iriImplementation() ;
-        IRIFactory iriFactory = IRIResolver.iriFactory ;
+        IRIFactory iriFactory = IRIResolver.iriFactory() ;
         
         boolean first = true ;
         for ( String iriStr : args )

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-fuseki1/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
index 2972b49..8bb3fb3 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
@@ -37,8 +37,7 @@ public class IRIValidator extends ValidatorBase
     { }
   
     static final String paramIRI      = "iri" ;
-    //static IRIFactory iriFactory = IRIFactory.iriImplementation() ;
-    static IRIFactory iriFactory = IRIResolver.iriFactory ;
+    static IRIFactory iriFactory = IRIResolver.iriFactory() ;
     
     @Override
     protected void execute(HttpServletRequest httpRequest, HttpServletResponse httpResponse)

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
index 8664d22..b471895 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
@@ -40,7 +40,7 @@ public class IRIValidatorHTML
   
     static final String paramIRI      = "iri" ;
     //static IRIFactory iriFactory = IRIFactory.iriImplementation() ;
-    static IRIFactory iriFactory = IRIResolver.iriFactory ;
+    static IRIFactory iriFactory = IRIResolver.iriFactory() ;
     
     public static void executeHTML(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
     {

http://git-wip-us.apache.org/repos/asf/jena/blob/9f4010e2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
index 978709c..90a7f22 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
@@ -35,7 +35,7 @@ public class IRIValidatorJSON {
 
     public IRIValidatorJSON() { }
     
-    static IRIFactory iriFactory = IRIResolver.iriFactory ;
+    static IRIFactory iriFactory = IRIResolver.iriFactory() ;
     
     static final String paramIRI           = "iri" ;