This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 0b188c37988f78f1fa86417fdba2ff928fd50362
Author: Andy Seaborne <[email protected]>
AuthorDate: Thu Apr 3 09:22:49 2025 +0100

    Clean up assembler code
---
 .../java/org/apache/jena/query/DatasetFactory.java |   2 +-
 .../jena/rdfs/assembler/GraphRDFSAssembler.java    |   2 +-
 .../jena/sparql/core/assembler/AssemblerUtils.java | 120 ++---
 .../sparql/core/assembler/DatasetAssembler.java    |   2 +-
 .../src/main/java/tdb/cmdline/ModTDBDataset.java   |   2 +-
 .../src/main/java/tdb2/cmdline/ModTDBDataset.java  |   2 +-
 .../java/org/apache/jena/assembler/Assembler.java  |   9 +-
 .../org/apache/jena/assembler/AssemblerHelp.java   | 488 ++++++++++-----------
 .../org/apache/jena/assembler/ConstAssembler.java  |  21 +-
 .../assembler/assemblers/InfModelAssembler.java    |   9 +-
 .../org/apache/jena/ontology/OntModelSpec.java     |   2 +-
 .../org/apache/jena/rdf/model/ModelFactory.java    |   2 +-
 .../java/org/apache/jena/sys/InitJenaCore.java     |  28 +-
 .../jena/assembler/acceptance/AllAccept.java       |   4 +-
 .../jena/assembler/test/TestAssemblerGroup.java    |  58 +--
 .../assembler/test/TestBuiltinAssemblerGroup.java  |   6 +-
 .../org/apache/jena/fuseki/build/FusekiConfig.java |   2 +-
 .../org/apache/jena/tdb2/assembler/VocabTDB2.java  |   2 +-
 .../apache/jena/query/text/assembler/Params.java   |   2 +-
 .../jena/query/text/assembler/TextAssembler.java   |  24 +-
 .../text/AbstractTestDatasetWithAnalyzer.java      |   2 +-
 .../text/TestDatasetWithLocalizedAnalyzer.java     |   2 +-
 ...TestDatasetWithLuceneMultilingualTextIndex.java |   2 +-
 .../text/TestDatasetWithLuceneStoredLiterals.java  |   2 +-
 .../query/text/TestDatasetWithLuceneTextIndex.java |   2 +-
 ...estDatasetWithLuceneTextIndexWithLangField.java |   2 +-
 .../query/text/TestDatasetWithSimpleAnalyzer.java  |   2 +-
 .../text/TestDatasetWithStandardAnalyzer.java      |   2 +-
 .../jena/query/text/TestTextDefineAnalyzers.java   |   2 +-
 .../jena/query/text/TestTextGraphIndexExtra2.java  |   2 +-
 .../jena/query/text/TestTextHighlighting.java      |   2 +-
 .../text/TestTextMultilingualEnhancements.java     |   2 +-
 .../text/TestTextMultilingualEnhancements02.java   |   2 +-
 .../text/TestTextMultipleProplistNotWorking.java   |   2 +-
 .../apache/jena/query/text/TestTextPropLists.java  |   2 +-
 .../jena/query/text/TestTextPropLists02.java       |   2 +-
 .../text/assembler/TestEntityMapAssembler.java     |  10 +-
 .../text/assembler/TestTextDatasetAssembler.java   |   8 +-
 .../assembler/TestTextIndexLuceneAssembler.java    |  16 +-
 39 files changed, 431 insertions(+), 422 deletions(-)

diff --git a/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java 
b/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java
index 7faa7fed80..67ab1494e7 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java
@@ -301,7 +301,7 @@ public class DatasetFactory {
      */
     public static Dataset assemble(Resource resource) {
         Objects.requireNonNull(resource, "resource can not be null") ;
-        Dataset ds = (Dataset) Assembler.general.open(resource);
+        Dataset ds = (Dataset) Assembler.general().open(resource);
         return ds;
     }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/GraphRDFSAssembler.java 
b/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/GraphRDFSAssembler.java
index acec3bfec5..f0869d3190 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/GraphRDFSAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/GraphRDFSAssembler.java
@@ -65,7 +65,7 @@ public class GraphRDFSAssembler extends AssemblerBase 
implements Assembler {
         if ( graph == null )
             throw new AssemblerException(root, "Required base graph missing: 
"+VocabRDFS.tGraphRDFS) ;
 
-        Model base = (Model)Assembler.general.open(graph);
+        Model base = (Model)Assembler.general().open(graph);
 
         String schemaFile = getAsStringValue(root, VocabRDFS.pRdfsSchemaFile);
         if ( schemaFile == null )
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
index cf02882007..b2cd64dfb3 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
@@ -18,51 +18,55 @@
 
 package org.apache.jena.sparql.core.assembler;
 
-import org.apache.jena.assembler.Assembler ;
-import org.apache.jena.assembler.ConstAssembler ;
-import org.apache.jena.assembler.JA ;
-import org.apache.jena.assembler.assemblers.AssemblerGroup ;
+import static org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab.*;
+
+import java.util.Objects;
+
+import org.apache.jena.assembler.Assembler;
+import org.apache.jena.assembler.JA;
+import org.apache.jena.assembler.assemblers.AssemblerGroup;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
-import org.apache.jena.query.* ;
-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.rdf.model.ResourceFactory ;
-import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.shared.PrefixMapping ;
-import org.apache.jena.sparql.ARQException ;
+import org.apache.jena.query.QueryExecution;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.QuerySolutionMap;
+import org.apache.jena.query.ResultSet;
+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.rdf.model.ResourceFactory;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.shared.PrefixMapping;
+import org.apache.jena.sparql.ARQException;
 import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.util.Context ;
-import org.apache.jena.sparql.util.MappingRegistry ;
-import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.sparql.util.TypeNotUniqueException ;
-import org.apache.jena.sparql.util.graph.GraphUtils ;
-import org.apache.jena.sys.JenaSystem ;
+import org.apache.jena.sparql.util.Context;
+import org.apache.jena.sparql.util.MappingRegistry;
+import org.apache.jena.sparql.util.Symbol;
+import org.apache.jena.sparql.util.TypeNotUniqueException;
+import org.apache.jena.sparql.util.graph.GraphUtils;
+import org.apache.jena.sys.JenaSystem;
 import org.apache.jena.system.Txn;
-import org.apache.jena.vocabulary.RDFS ;
-import static org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab.*;
-
-import java.util.Objects;
+import org.apache.jena.vocabulary.RDFS;
 
 public class AssemblerUtils
 {
     // Wrappers for reading things form a file - assumes one of the thing per 
file.
     public static PrefixMapping readPrefixMapping(String file)
     {
-        PrefixMapping pm = (PrefixMapping)AssemblerUtils.build(file, 
JA.PrefixMapping) ;
-        return pm ;
+        PrefixMapping pm = (PrefixMapping)AssemblerUtils.build(file, 
JA.PrefixMapping);
+        return pm;
     }
 
-    private static boolean initialized = false ;
+    private static boolean initialized = false;
+    private static AssemblerGroup generalAssembler = Assembler.general();
 
-    static { JenaSystem.init() ; }
+    static { JenaSystem.init(); }
 
     static public void init()
     {
         if ( initialized )
-            return ;
-        initialized = true ;
+            return;
+        initialized = true;
         registerDataset(tDataset,         new DatasetAssemblerGeneral());
         registerDataset(tDatasetOne,      new DatasetOneAssembler());
         registerDataset(tDatasetZero,     new DatasetZeroAssembler());
@@ -74,37 +78,37 @@ public class AssemblerUtils
         registerModel(tViewGraph,          new ViewGraphAssembler());
     }
 
-    private static Model modelExtras = ModelFactory.createDefaultModel() ;
+    private static Model modelExtras = ModelFactory.createDefaultModel();
 
     // Legacy. Supports assemblers using a general "rdf:type ja:dataset"
-    private static Resource datasetAssemblerType = 
DatasetAssemblerVocab.tDataset ;
+    private static Resource datasetAssemblerType = 
DatasetAssemblerVocab.tDataset;
 
     /** Register an assembler that creates a dataset */
     static public void registerDataset(Resource r, Assembler a) {
-       register(ConstAssembler.general(), r, a, datasetAssemblerType) ;
+       register(generalAssembler, r, a, datasetAssemblerType);
     }
 
     /** Register an assembler that creates a dataset */
     static public void registerModel(Resource r, Assembler a) {
-        register(ConstAssembler.general(), r, a, JA.Model) ;
+        register(generalAssembler, r, a, JA.Model);
     }
 
     /** Register an additional assembler */
     static public void register(AssemblerGroup g, Resource r, Assembler a, 
Resource superType) {
-        registerAssembler(g, r, a) ;
+        registerAssembler(g, r, a);
         if ( superType != null && ! superType.equals(r) ) {
             // This is called during Jena-wide initialization.
             // Use function for constant (JENA-1294)
-           modelExtras.add(r, RDFS.Init.subClassOf(), superType) ;
+           modelExtras.add(r, RDFS.Init.subClassOf(), superType);
         }
     }
 
     /** register */
     public static void registerAssembler(AssemblerGroup group, Resource r, 
Assembler a) {
         if ( group == null )
-            group = ConstAssembler.general();
+            group = generalAssembler;
         group.implementWith(r, a);
-        // assemblerAssertions.add(r, RDFS.subClassOf, JA.Object) ;
+        // assemblerAssertions.add(r, RDFS.subClassOf, JA.Object);
     }
 
     public static Model readAssemblerFile(String assemblerFile) {
@@ -126,18 +130,18 @@ public class AssemblerUtils
      * @return Model The same model after modification.
      */
     public static Model addRegistered(Model model) {
-        model.add(modelExtras) ;
-        return model ;
+        model.add(modelExtras);
+        return model;
     }
 
     public static Object build(String assemblerFile, String typeURI) {
-        Resource type = ResourceFactory.createResource(typeURI) ;
-        return build(assemblerFile, type) ;
+        Resource type = ResourceFactory.createResource(typeURI);
+        return build(assemblerFile, type);
     }
 
     public static Object build(String assemblerFile, Resource type) {
-        Objects.requireNonNull(assemblerFile, "No assembler file") ;
-        Model spec = readAssemblerFile(assemblerFile) ;
+        Objects.requireNonNull(assemblerFile, "No assembler file");
+        Model spec = readAssemblerFile(assemblerFile);
         return build(spec, type);
     }
 
@@ -150,13 +154,13 @@ public class AssemblerUtils
         } catch (TypeNotUniqueException ex) {
             throw new ARQException("Multiple types for: " + tDataset);
         }
-        return Assembler.general.open(root) ;
+        return generalAssembler.open(root);
     }
     /** Look for and build context declarations.
      * e.g.
      * <pre>
-     * root ... ;
-     *   ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "10000" ] ;
+     * root ...;
+     *   ja:context [ ja:cxtName "arq:queryTimeout";  ja:cxtValue "10000" ];
      *   ...
      * </pre>
      * Short name forms of context parameters can be used.
@@ -205,30 +209,30 @@ public class AssemblerUtils
     /** Look for and merge in context declarations.
      * e.g.
      * <pre>
-     * root ... ;
-     *   ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "10000" ] ;
+     * root ...;
+     *   ja:context [ ja:cxtName "arq:queryTimeout";  ja:cxtValue "10000" ];
      *   ...
      * </pre>
      * Short name forms of context parameters can be used.
      * Setting as string "undef" will remove the context setting.
      */
     public static void mergeContext(Resource r, Context context) {
-        String qs = "PREFIX ja: <"+JA.getURI()+">\nSELECT * { ?x ja:context [ 
ja:cxtName ?name ; ja:cxtValue ?value ] }" ;
-        QuerySolutionMap qsm = new QuerySolutionMap() ;
-        qsm.add("x", r) ;
+        String qs = "PREFIX ja: <"+JA.getURI()+">\nSELECT * { ?x ja:context [ 
ja:cxtName ?name; ja:cxtValue ?value ] }";
+        QuerySolutionMap qsm = new QuerySolutionMap();
+        qsm.add("x", r);
         QueryExecution qExec = 
QueryExecution.model(r.getModel()).query(qs).substitution(qsm).build();
-        ResultSet rs = qExec.execSelect() ;
+        ResultSet rs = qExec.execSelect();
         while ( rs.hasNext() )
         {
-            QuerySolution soln = rs.next() ;
-            String name = soln.getLiteral("name").getLexicalForm() ;
-            String value = soln.getLiteral("value").getLexicalForm() ;  // 
Works for numbers as well!
-            name = MappingRegistry.mapPrefixName(name) ;
-            Symbol symbol = Symbol.create(name) ;
+            QuerySolution soln = rs.next();
+            String name = soln.getLiteral("name").getLexicalForm();
+            String value = soln.getLiteral("value").getLexicalForm();  // 
Works for numbers as well!
+            name = MappingRegistry.mapPrefixName(name);
+            Symbol symbol = Symbol.create(name);
             if ( "undef".equalsIgnoreCase(value) )
-                context.remove(symbol) ;
+                context.remove(symbol);
             else
-                context.set(symbol, value) ;
+                context.set(symbol, value);
         }
     }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
index db281ec028..4127c63113 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
@@ -69,7 +69,7 @@ public abstract class DatasetAssembler extends AssemblerBase 
implements Assemble
         Resource dataset = getResourceValue(dbAssem, pDataset) ;
         if ( dataset == null )
             throw new AssemblerException(dbAssem, "Required base dataset 
missing: "+dbAssem) ;
-        Dataset base = (Dataset)Assembler.general.open(dataset);
+        Dataset base = (Dataset)Assembler.general().open(dataset);
         return base.asDatasetGraph();
     }
 }
diff --git a/jena-cmds/src/main/java/tdb/cmdline/ModTDBDataset.java 
b/jena-cmds/src/main/java/tdb/cmdline/ModTDBDataset.java
index e756f712f6..def2048bd4 100644
--- a/jena-cmds/src/main/java/tdb/cmdline/ModTDBDataset.java
+++ b/jena-cmds/src/main/java/tdb/cmdline/ModTDBDataset.java
@@ -111,7 +111,7 @@ public class ModTDBDataset extends ModDataset {
             root = GraphUtils.findRootByType(spec, VocabTDB1.tDatasetTDB1);
         if ( root == null )
             throw new ARQException("Not found: No such type: <" + 
VocabTDB1.tDatasetTDB + ">");
-        return (Dataset)Assembler.general.open(root) ;
+        return (Dataset)Assembler.general().open(root) ;
     }
 
     public Location getLocation() {
diff --git a/jena-cmds/src/main/java/tdb2/cmdline/ModTDBDataset.java 
b/jena-cmds/src/main/java/tdb2/cmdline/ModTDBDataset.java
index 4bb79144e5..ceb59dfc9d 100644
--- a/jena-cmds/src/main/java/tdb2/cmdline/ModTDBDataset.java
+++ b/jena-cmds/src/main/java/tdb2/cmdline/ModTDBDataset.java
@@ -115,7 +115,7 @@ public class ModTDBDataset extends ModDataset {
             root = GraphUtils.findRootByType(spec, VocabTDB2.tDatasetTDB2);
         if ( root == null )
             throw new ARQException("Not found: No such type: <" + 
VocabTDB2.tDatasetTDB + ">");
-        return (Dataset)Assembler.general.open(root) ;
+        return (Dataset)Assembler.general().open(root) ;
     }
 
     public Location getLocation() {
diff --git a/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java 
b/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
index 0fb60c8aec..f75ffb46a5 100644
--- a/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
+++ b/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
@@ -31,8 +31,7 @@ import org.apache.jena.rdf.model.* ;
     not an instruction.
 
 */
-public interface Assembler
-    {
+public interface Assembler {
 
     /**
         The core operation: answer a new object constructed according to the
@@ -94,5 +93,9 @@ public interface Assembler
 
     public static final Assembler documentManager = 
ConstAssembler.documentManager();
 
+    public static AssemblerGroup general() { return general; }
+
+    /** @deprecated use {@link #general()} */
+    @Deprecated(forRemoval = true)
     public static final AssemblerGroup general = ConstAssembler.general() ;
-    }
+}
diff --git 
a/jena-core/src/main/java/org/apache/jena/assembler/AssemblerHelp.java 
b/jena-core/src/main/java/org/apache/jena/assembler/AssemblerHelp.java
index 5b41766cb3..f9c448b53c 100644
--- a/jena-core/src/main/java/org/apache/jena/assembler/AssemblerHelp.java
+++ b/jena-core/src/main/java/org/apache/jena/assembler/AssemblerHelp.java
@@ -18,304 +18,298 @@
 
 package org.apache.jena.assembler;
 
-import java.lang.reflect.Constructor ;
-import java.lang.reflect.Method ;
-import java.util.ArrayList ;
-import java.util.HashSet ;
-import java.util.List ;
-import java.util.Set ;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
-import org.apache.jena.assembler.assemblers.AssemblerGroup ;
-import org.apache.jena.assembler.exceptions.AmbiguousSpecificTypeException ;
-import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.datatypes.xsd.XSDDatatype ;
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.shared.BadDescriptionMultipleRootsException ;
-import org.apache.jena.shared.BadDescriptionNoRootException ;
-import org.apache.jena.shared.JenaException ;
-import org.apache.jena.shared.PrefixMapping ;
-import org.apache.jena.vocabulary.RDF ;
-import org.apache.jena.vocabulary.RDFS ;
+import org.apache.jena.assembler.assemblers.AssemblerGroup;
+import org.apache.jena.assembler.exceptions.AmbiguousSpecificTypeException;
+import org.apache.jena.atlas.logging.Log;
+import org.apache.jena.datatypes.xsd.XSDDatatype;
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.shared.BadDescriptionMultipleRootsException;
+import org.apache.jena.shared.BadDescriptionNoRootException;
+import org.apache.jena.shared.JenaException;
+import org.apache.jena.shared.PrefixMapping;
+import org.apache.jena.vocabulary.RDF;
+import org.apache.jena.vocabulary.RDFS;
 
 /**
-    AssemblerHelp provides utility methods used by, and useful for working 
with,
-    the Assembler code, including the methods that expand a model to include 
the
-    required inferences and to find the most specific type of a root in an
-    assembler specification.
-*/
-public class AssemblerHelp
-    {
+ * AssemblerHelp provides utility methods used by, and useful for working 
with, the
+ * Assembler code, including the methods that expand a model to include the 
required
+ * inferences and to find the most specific type of a root in an assembler
+ * specification.
+ */
+public class AssemblerHelp {
     /**
-        A useful constant for <code>listStatements(S, P, O)</code>. 
-    */
+     * A useful constant for <code>listStatements(S, P, O)</code>.
+     */
     protected static final Property ANY = null;
-    
+
     /**
-        Answer a Resource .equals() to <code>root</code>, but in the expanded
-        model.
-    */
-    public static Resource withFullModel( Resource root )
-        { return root.inModel( fullModel( root.getModel() ) ); }
-    
+     * Answer a Resource .equals() to <code>root</code>, but in the expanded 
model.
+     */
+    public static Resource withFullModel(Resource root) {
+        return root.inModel(fullModel(root.getModel()));
+    }
+
     /**
-        Answer the full model of <code>m</code>, with all its imports included 
and
-        with the necessary properties added from the JA schema. However, if
-        the magic footprint triple (ja:this, rdf:type, ja:Expanded) is present 
in the
-        model, it is returned unchanged. Imports are managed by the shared
-        <code>ImportManager.instance</code>.
-    */
-    public static Model fullModel( Model m )
-        { return fullModel( ImportManager.instance, m ); }    
-    
+     * Answer the full model of <code>m</code>, with all its imports included 
and
+     * with the necessary properties added from the JA schema. However, if the 
magic
+     * footprint triple (ja:this, rdf:type, ja:Expanded) is present in the 
model, it
+     * is returned unchanged. Imports are managed by the shared
+     * <code>ImportManager.instance</code>.
+     */
+    public static Model fullModel(Model m) {
+        return fullModel(ImportManager.instance, m);
+    }
+
     /**
-        Answer the full model of <code>m</code>, with all its imports included 
and
-        with the necessary properties added from the JA schema. However, if
-        the magic footprint triple (ja:this, rdf:type, ja:Expanded) is present 
in the
-        model, it is returned unchanged. Imports are managed by 
<code>im</code>.
-    */
-    public static Model fullModel( ImportManager im, Model m )
-        {
-        return m.contains( JA.This, RDF.type, JA.Expanded )
-            ? m
-            : (Model) ModelExpansion.withSchema( im.withImports( m ), 
JA.getSchema() )
-                .add( JA.This, RDF.type, JA.Expanded )
-                .setNsPrefixes( PrefixMapping.Extended )
-                .setNsPrefixes( m )
-            ;
-        }
-    
+     * Answer the full model of <code>m</code>, with all its imports included 
and
+     * with the necessary properties added from the JA schema. However, if the 
magic
+     * footprint triple (ja:this, rdf:type, ja:Expanded) is present in the 
model, it
+     * is returned unchanged. Imports are managed by <code>im</code>.
+     */
+    public static Model fullModel(ImportManager im, Model m) {
+        return m.contains(JA.This, RDF.type, JA.Expanded)
+            ? m : (Model)ModelExpansion.withSchema(im.withImports(m), 
JA.getSchema()).add(JA.This, RDF.type, JA.Expanded)
+                                       
.setNsPrefixes(PrefixMapping.Extended).setNsPrefixes(m);
+    }
+
     /**
-        Load all the classes which are objects of any (t, ja:loadClass, S) 
-        statements in <code>m</code>. The order in which the classes are 
-        loaded is not specified, and loading stops immediately if any class 
-        cannot be loaded. 
-    <p>    
-        Contrast with <code>loadClasses(AssemblerGroup,Model)</code>, 
-        which loads classes and assumes that those classes are assemblers to 
-        be added to the group.
+     * Load all the classes which are objects of any (t, ja:loadClass, S) 
statements
+     * in <code>m</code>. The order in which the classes are loaded is not 
specified,
+     * and loading stops immediately if any class cannot be loaded.
+     * <p>
+     * Contrast with <code>loadClasses(AssemblerGroup,Model)</code>, which 
loads
+     * classes and assumes that those classes are assemblers to be added to the
+     * group.
      */
-    public static void loadArbitraryClasses( AssemblerGroup g, Model m )
-        {
-        StmtIterator it = m.listStatements( null, JA.loadClass, ANY );
-        while (it.hasNext()) loadArbitraryClass( g, it.nextStatement() );      
  
-        }
-    
+    public static void loadArbitraryClasses(AssemblerGroup g, Model m) {
+        StmtIterator it = m.listStatements(null, JA.loadClass, ANY);
+        while (it.hasNext())
+            loadArbitraryClass(g, it.nextStatement());
+    }
+
     /**
-         Load all the classes which are objects of any (t, ja:assembler, S) 
statements 
-         in <code>m</code>. <code>group.implementWIth(t,c)</code> is called
-         for each statement, where <code>c</code> is an instance of the class 
named
-         by <code>S</code>. The order in which the classes are loaded is not
-         specified, and loading stops immediately if any class cannot be 
loaded.
-    */
-    public static void loadAssemblerClasses( AssemblerGroup group, Model m )
-        {
-        StmtIterator it = m.listStatements( ANY, JA.assembler, ANY );
-        while (it.hasNext()) loadAssemblerClass( group, it.nextStatement() );
-        }
-    
+     * Load all the classes which are objects of any (t, ja:assembler, S) 
statements
+     * in <code>m</code>. <code>group.implementWIth(t,c)</code> is called for 
each
+     * statement, where <code>c</code> is an instance of the class named by
+     * <code>S</code>. The order in which the classes are loaded is not 
specified,
+     * and loading stops immediately if any class cannot be loaded.
+     */
+    public static void loadAssemblerClasses(AssemblerGroup group, Model m) {
+        StmtIterator it = m.listStatements(ANY, JA.assembler, ANY);
+        while (it.hasNext())
+            loadAssemblerClass(group, it.nextStatement());
+    }
+
     /**
-        Load the class named by the object of <code>s</code>, run its
-        <code>whenRequiredByAssembler</code> method if any, and
-        register an <code>implementWith</code> for the subject of
-        <code>s</code> and an instance of the class.
-    */
-    private static void loadAssemblerClass( AssemblerGroup group, Statement s )
-        {
-        Class<?> c = loadArbitraryClass( group, s );
-        runAnyAssemblerConstructor( group, s, c );
-        }
-    
+     * Load the class named by the object of <code>s</code>, run its
+     * <code>whenRequiredByAssembler</code> method if any, and register an
+     * <code>implementWith</code> for the subject of <code>s</code> and an 
instance
+     * of the class.
+     */
+    private static void loadAssemblerClass(AssemblerGroup group, Statement s) {
+        Class<? > c = loadArbitraryClass(group, s);
+        runAnyAssemblerConstructor(group, s, c);
+    }
+
     /**
-        Load the class named by the object of <code>s</code> if necessary.
-        If that class has a static method <code>whenRequiredByAssembler</code>
-        with an <code>AssemblerGroup</code> argument, call that method
-        passing it <code>ag</code>.
-    */
-    private static Class<?> loadArbitraryClass( AssemblerGroup ag, Statement s 
)
-        {
-        Class<?> loaded = loadClassNamedBy( s ); 
-        try 
-            { 
-            Method m = loaded.getDeclaredMethod( "whenRequiredByAssembler", 
new Class[] {AssemblerGroup.class} );
-            m.invoke( null, ag );
-            }
-        catch (NoSuchMethodException e)
-            { /* that's OK */ }
-        catch (Exception e) 
-            { throw new JenaException( e ); }       
-        return loaded;
+     * Load the class named by the object of <code>s</code> if necessary. If 
that
+     * class has a static method <code>whenRequiredByAssembler</code> with an
+     * <code>AssemblerGroup</code> argument, call that method passing it
+     * <code>ag</code>.
+     */
+    private static Class<? > loadArbitraryClass(AssemblerGroup ag, Statement 
s) {
+        Class<? > loaded = loadClassNamedBy(s);
+        try {
+            Method m = loaded.getDeclaredMethod("whenRequiredByAssembler", new 
Class[]{AssemblerGroup.class});
+            m.invoke(null, ag);
+        } catch (NoSuchMethodException e) { /* that's OK */ } catch (Exception 
e) {
+            throw new JenaException(e);
         }
-    
-    private static Class<?> loadClassNamedBy( Statement s )
-    {
-        String x = getString( s ) ;
-        // Jena2 -> Jena3 transition 
+        return loaded;
+    }
+
+    private static Class<? > loadClassNamedBy(Statement s) {
+        String x = getString(s);
+        // Jena2 -> Jena3 transition
         if ( x.startsWith("com.hp.hpl.jena") ) {
-            String x1 = x.replaceFirst("com.hp.hpl.jena", "org.apache.jena") ;
-            Log.warnOnce(AssemblerHelp.class, "ja:loadClass: Migration to 
Jena3: Converting "+x+" to "+x1, x) ;
-            x = x1 ;
+            String x1 = x.replaceFirst("com.hp.hpl.jena", "org.apache.jena");
+            Log.warnOnce(AssemblerHelp.class, "ja:loadClass: Migration to 
Jena3: Converting " + x + " to " + x1, x);
+            x = x1;
+        }
+        try {
+            return Class.forName(x);
+        } catch (Exception e) {
+            throw new JenaException(e);
         }
-        try { return Class.forName(x); }
-        catch (Exception e) { throw new JenaException( e ); }
     }
 
-    private static void runAnyAssemblerConstructor( AssemblerGroup group,  
Statement s, Class<?> c )
-        {
-        try
-            {
+    private static void runAnyAssemblerConstructor(AssemblerGroup group, 
Statement s, Class<? > c) {
+        try {
             Resource type = s.getSubject();
-            Constructor<?> con = getResourcedConstructor( c );
-            if (con == null)
-                establish( group, type, c.getConstructor().newInstance() );
+            Constructor<? > con = getResourcedConstructor(c);
+            if ( con == null )
+                establish(group, type, c.getConstructor().newInstance());
             else
-                establish( group, type, con.newInstance( s.getSubject() ) );
-            }
-        catch (Exception e)
-            { throw new JenaException( e ); }
+                establish(group, type, con.newInstance(s.getSubject()));
+        } catch (Exception e) {
+            throw new JenaException(e);
         }
-    
-    private static void establish( AssemblerGroup group, Resource type, Object 
x )
-        {
-        if (x instanceof Assembler)
-            group.implementWith( type, (Assembler) x );
+    }
+
+    private static void establish(AssemblerGroup group, Resource type, Object 
x) {
+        if ( x instanceof Assembler )
+            group.implementWith(type, (Assembler)x);
         else
-            throw new JenaException( "constructed entity is not an Assembler: 
" + x );
-        }
+            throw new JenaException("constructed entity is not an Assembler: " 
+ x);
+    }
 
-    private static Constructor<?> getResourcedConstructor( Class<?> c )
-        {
-        try { return c.getConstructor( new Class[] { Resource.class } ); }
-        catch (SecurityException e) { return null; }
-        catch (NoSuchMethodException e) { return null; }
+    private static Constructor<? > getResourcedConstructor(Class<? > c) {
+        try {
+            return c.getConstructor(new Class[]{Resource.class});
+        } catch (SecurityException e) {
+            return null;
+        } catch (NoSuchMethodException e) {
+            return null;
         }
+    }
 
     /**
-         Answer the most specific type of <code>root</code> that is a subclass 
of
-         ja:Object. If there are no candidate types, answer 
<code>givenType</code>. 
-         If there is more than one type, throw a NoSpecificTypeException.
-    */
-    public static Resource findSpecificType( Resource root )
-        { return findSpecificType( root, JA.Object ); }
+     * Answer the most specific type of <code>root</code> that is a subclass of
+     * ja:Object. If there are no candidate types, answer 
<code>givenType</code>. If
+     * there is more than one type, throw a NoSpecificTypeException.
+     */
+    public static Resource findSpecificType(Resource root) {
+        return findSpecificType(root, JA.Object);
+    }
 
     /**
-        Answer the most specific type of <code>root</code> that is a subclass 
of
-         <code>givenType</code>. If there are no candidate types, answer 
-         <code>givenType</code>. If there is more than one type, throw a 
-         NoSpecificTypeException.
-    */
-    public static Resource findSpecificType( Resource root, Resource baseType )
-        {
-        Set<Resource> types = findSpecificTypes( root, baseType );
-        if (types.size() == 1)
+     * Answer the most specific type of <code>root</code> that is a subclass of
+     * <code>givenType</code>. If there are no candidate types, answer
+     * <code>givenType</code>. If there is more than one type, throw a
+     * NoSpecificTypeException.
+     */
+    public static Resource findSpecificType(Resource root, Resource baseType) {
+        Set<Resource> types = findSpecificTypes(root, baseType);
+        if ( types.size() == 1 )
             return types.iterator().next();
-        if (types.size() == 0)
+        if ( types.size() == 0 )
             return baseType;
-        throw new AmbiguousSpecificTypeException( root, new ArrayList<>( types 
) );
-        }
+        throw new AmbiguousSpecificTypeException(root, new ArrayList<>(types));
+    }
 
     /**
-        Answer all the types of <code>root</code> which are subtypes of
-        <code>baseType</code> and which do not have subtypes which are
-        also types of <code>root</code>.
-    */
-    public static Set<Resource> findSpecificTypes( Resource root, Resource 
baseType )
-        {
-        List<RDFNode> types = root.listProperties( RDF.type ).mapWith( 
Statement::getObject ).toList();
+     * Answer all the types of <code>root</code> which are subtypes of
+     * <code>baseType</code> and which do not have subtypes which are also 
types of
+     * <code>root</code>.
+     */
+    public static Set<Resource> findSpecificTypes(Resource root, Resource 
baseType) {
+        List<RDFNode> types = 
root.listProperties(RDF.type).mapWith(Statement::getObject).toList();
         Set<Resource> results = new HashSet<>();
-        for (int i = 0; i < types.size(); i += 1)
-            {
-            Resource candidate = (Resource) types.get( i );
-            if  (candidate.hasProperty( RDFS.subClassOf, baseType ))
-                if (hasNoCompetingSubclass( types, candidate )) 
-                    results.add( candidate );
-            }
-        return results;
+        for ( int i = 0 ; i < types.size() ; i += 1 ) {
+            Resource candidate = (Resource)types.get(i);
+            if ( candidate.hasProperty(RDFS.subClassOf, baseType) )
+                if ( hasNoCompetingSubclass(types, candidate) )
+                    results.add(candidate);
         }
+        return results;
+    }
 
-    private static boolean hasNoCompetingSubclass( List<RDFNode> types, 
Resource candidate )
-        {
-            for ( RDFNode type : types )
-            {
-                Resource other = (Resource) type;
-                if ( other.hasProperty( RDFS.subClassOf, candidate ) && 
!candidate.equals( other ) )
-                {
-                    return false;
-                }
+    private static boolean hasNoCompetingSubclass(List<RDFNode> types, 
Resource candidate) {
+        for ( RDFNode type : types ) {
+            Resource other = (Resource)type;
+            if ( other.hasProperty(RDFS.subClassOf, candidate) && 
!candidate.equals(other) ) {
+                return false;
             }
-        return true;
         }
+        return true;
+    }
 
     /**
-        Answer the resource that is the object of the statement 
<code>s</code>. If
-        the object is not a resource, throw a BadObjectException with that 
statement.
-    */
-    public static Resource getResource( Statement s )
-        {
+     * Answer the resource that is the object of the statement <code>s</code>. 
If the
+     * object is not a resource, throw a BadObjectException with that 
statement.
+     */
+    public static Resource getResource(Statement s) {
         RDFNode ob = s.getObject();
-        if (ob.isLiteral()) throw new BadObjectException( s );
-        return (Resource) ob;
-        }
+        if ( ob.isLiteral() )
+            throw new BadObjectException(s);
+        return (Resource)ob;
+    }
 
     /**
-        Answer the plain string object of the statement <code>s</code>. If the
-        object is not a string literal, throw a BadObjectException with that 
statement.
-    */
-    public static String getString( Statement s )
-        {
+     * Answer the plain string object of the statement <code>s</code>. If the 
object
+     * is not a string literal, throw a BadObjectException with that statement.
+     */
+    public static String getString(Statement s) {
         RDFNode ob = s.getObject();
-        if (ob.isResource()) throw new BadObjectException( s );
-        Literal L = (Literal) ob;
-        if (!L.getLanguage().equals( "" )) throw new BadObjectException( s );
-        if (L.getDatatype() == null) return L.getLexicalForm();
-        if (L.getDatatype() == XSDDatatype.XSDstring) return 
L.getLexicalForm();
-        throw new BadObjectException( s );
-        }
+        if ( ob.isResource() )
+            throw new BadObjectException(s);
+        Literal L = (Literal)ob;
+        if ( !L.getLanguage().equals("") )
+            throw new BadObjectException(s);
+        if ( L.getDatatype() == null )
+            return L.getLexicalForm();
+        if ( L.getDatatype() == XSDDatatype.XSDstring )
+            return L.getLexicalForm();
+        throw new BadObjectException(s);
+    }
 
     /**
-        Answer the String value of the literal <code>L</code>, which is the
-        object of the Statement <code>s</code>. If the literal is not an
-        XSD String or a plain string without a language code, throw a
-        BadObjectException.
-    */
-    public static String getString( Statement s, Literal L )
-        {
-        if (!L.getLanguage().equals( "" )) throw new BadObjectException( s );
-        if (L.getDatatype() == null) return L.getLexicalForm();
-        if (L.getDatatype() == XSDDatatype.XSDstring) return 
L.getLexicalForm();
-        throw new BadObjectException( s );
-        }
+     * Answer the String value of the literal <code>L</code>, which is the 
object of
+     * the Statement <code>s</code>. If the literal is not an XSD String or a 
plain
+     * string without a language code, throw a BadObjectException.
+     */
+    public static String getString(Statement s, Literal L) {
+        if ( !L.getLanguage().equals("") )
+            throw new BadObjectException(s);
+        if ( L.getDatatype() == null )
+            return L.getLexicalForm();
+        if ( L.getDatatype() == XSDDatatype.XSDstring )
+            return L.getLexicalForm();
+        throw new BadObjectException(s);
+    }
 
     /**
-        Answer a Set of the ja:Object resources in the full expansion of
-        the assembler specification model <code>model</code>.
-    */
-    public static Set<Resource> findAssemblerRoots( Model model )
-        { return findAssemblerRoots( model, JA.Object ); }
+     * Answer a Set of the ja:Object resources in the full expansion of the 
assembler
+     * specification model <code>model</code>.
+     */
+    public static Set<Resource> findAssemblerRoots(Model model) {
+        return findAssemblerRoots(model, JA.Object);
+    }
 
     /**
-        Answer a Set of the objects in the full expansion of the assembler
-        specification <code>model</code> which have rdf:type <code>type</code>,
-        which <i>must</i> be a subtype of <code>ja:Object</code>.
-    */
-    public static Set<Resource> findAssemblerRoots( Model model, Resource type 
)
-        { return fullModel( model ).listResourcesWithProperty( RDF.type, type 
).toSet(); }
+     * Answer a Set of the objects in the full expansion of the assembler
+     * specification <code>model</code> which have rdf:type <code>type</code>, 
which
+     * <i>must</i> be a subtype of <code>ja:Object</code>.
+     */
+    public static Set<Resource> findAssemblerRoots(Model model, Resource type) 
{
+        return fullModel(model).listResourcesWithProperty(RDF.type, 
type).toSet();
+    }
 
     /**
-         Answer the single resource in <code>singleRoot</code> of type
-         <code>ja:Model</code>. Otherwise throw an exception.
-    */
-    public static Resource singleModelRoot( Model singleRoot )
-        { return singleRoot( singleRoot, JA.Model ); }
+     * Answer the single resource in <code>singleRoot</code> of type
+     * <code>ja:Model</code>. Otherwise throw an exception.
+     */
+    public static Resource singleModelRoot(Model singleRoot) {
+        return singleRoot(singleRoot, JA.Model);
+    }
 
     /**
-       Answer the single resource in <code>singleRoot</code> of type
-         <code>type</code>. Otherwise throw an exception.
-    */
-    public static Resource singleRoot( Model singleRoot, Resource type )
-        {
-        Set<Resource> roots = findAssemblerRoots( singleRoot, type );
-        if (roots.size() == 1) return roots.iterator().next();
-        if (roots.size() == 0) throw new BadDescriptionNoRootException( 
singleRoot, type );
-        throw new BadDescriptionMultipleRootsException( singleRoot, type );
-        }
+     * Answer the single resource in <code>singleRoot</code> of type
+     * <code>type</code>. Otherwise throw an exception.
+     */
+    public static Resource singleRoot(Model singleRoot, Resource type) {
+        Set<Resource> roots = findAssemblerRoots(singleRoot, type);
+        if ( roots.size() == 1 )
+            return roots.iterator().next();
+        if ( roots.size() == 0 )
+            throw new BadDescriptionNoRootException(singleRoot, type);
+        throw new BadDescriptionMultipleRootsException(singleRoot, type);
     }
+}
diff --git 
a/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java 
b/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java
index deee4010a2..08ef4001f9 100644
--- a/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java
+++ b/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java
@@ -21,16 +21,16 @@ package org.apache.jena.assembler;
 import org.apache.jena.assembler.assemblers.* ;
 
 /*
-   Assembler initialization - so it works when inside class initialization 
processes.
+   Assembler initialization.
    Assembler is an interface and constants are statics (implicitly or 
explicitly final)
    which makes controlling order tricky.
 
-   Solution: initialization code (ie. inside jenaSystem.init) must use teh 
methods here,
+   Solution: initialization code (ie. inside jenaSystem.init) must use the 
methods here,
    and not Assembler.constant.
 
-   Use ConstAssembler.general(), not Assembler.general.
+   Use ConstAssembler.general(), not Assembler.general().
 */
-public class ConstAssembler
+/*package*/ class ConstAssembler
 {
     private static Assembler defaultModel = null ;
        public static Assembler defaultModel() {
@@ -109,10 +109,9 @@ public class ConstAssembler
                return documentManager ;
        }
 
-    private static AssemblerGroup general = null ;
-    public  static AssemblerGroup general() {
-        if ( general == null ) {
-            general =  AssemblerGroup.create()
+    private static AssemblerGroup general = makeGeneral();
+    private static AssemblerGroup makeGeneral() {
+        return AssemblerGroup.create()
                 .implementWith( JA.DefaultModel, defaultModel() )
                 .implementWith( JA.MemoryModel, memoryModel() )
                 .implementWith( JA.InfModel, infModel() )
@@ -127,7 +126,11 @@ public class ConstAssembler
                 .implementWith( JA.RuleSet, ruleSet() )
                 .implementWith( JA.DocumentManager, documentManager() )
                 ;
-        }
+    }
+
+    public static AssemblerGroup general() {
         return general ;
     }
+
+    static void init() {}
 }
diff --git 
a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/InfModelAssembler.java
 
b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/InfModelAssembler.java
index e483e4a4f0..d43ccda81b 100644
--- 
a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/InfModelAssembler.java
+++ 
b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/InfModelAssembler.java
@@ -26,6 +26,9 @@ import 
org.apache.jena.reasoner.rulesys.GenericRuleReasonerFactory ;
 
 public class InfModelAssembler extends ModelAssembler
     {
+
+    public InfModelAssembler() {}
+
     @Override
     protected Model openEmptyModel( Assembler a, Resource root, Mode mode )
         {
@@ -44,13 +47,13 @@ public class InfModelAssembler extends ModelAssembler
 
     protected Reasoner getReasoner( Assembler a, Resource root )
         { return getReasonerFactory( a, root ).create( root ); }
-    
+
     protected ReasonerFactory getReasonerFactory( Assembler a, Resource root )
-        { 
+        {
         Resource factory = getUniqueResource( root, JA.reasoner );
         return factory == null
             ? GenericRuleReasonerFactory.theInstance()
             : (ReasonerFactory) a.open( factory )
-            ;        
+            ;
         }
     }
diff --git a/jena-core/src/main/java/org/apache/jena/ontology/OntModelSpec.java 
b/jena-core/src/main/java/org/apache/jena/ontology/OntModelSpec.java
index fc595a46d1..f06a1fe72a 100644
--- a/jena-core/src/main/java/org/apache/jena/ontology/OntModelSpec.java
+++ b/jena-core/src/main/java/org/apache/jena/ontology/OntModelSpec.java
@@ -281,7 +281,7 @@ public class OntModelSpec {
     */
     public static OntModelSpec assemble( Resource root )
         {
-        Object assembled = Assembler.general.open( root );
+        Object assembled = Assembler.general().open( root );
         if (!(assembled instanceof OntModelSpec))
             throw new JenaException( "assemble: expected an OntModelSpec, but 
got a " + assembled.getClass().getName() );
         return (OntModelSpec) assembled;
diff --git 
a/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java 
b/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
index af03920bac..29d7bf7aa0 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
@@ -85,7 +85,7 @@ public class ModelFactory extends ModelFactoryBase
         is the prefix of Jena Assembler objects.
     */
     public static Model assembleModelFrom(Resource root) {
-        return Assembler.general.openModel(root);
+        return Assembler.general().openModel(root);
     }
 
     /**
diff --git a/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java 
b/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java
index e3f65d94c8..8a8add8130 100644
--- a/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java
+++ b/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java
@@ -18,18 +18,19 @@
 
 package org.apache.jena.sys;
 
+import org.apache.jena.assembler.Assembler;
 import org.apache.jena.irix.SystemIRIx;
 import org.apache.jena.vocabulary.OWL;
 import org.apache.jena.vocabulary.RDF;
 import org.apache.jena.vocabulary.RDFS;
 
 public class InitJenaCore  implements JenaSubsystemLifecycle {
-    private static volatile boolean initialized = false ;
-    private static Object           initLock    = new Object() ;
+    private static volatile boolean initialized = false;
+    private static Object           initLock    = new Object();
 
     @Override
     public void start() {
-        init() ;
+        init();
     }
 
     @Override
@@ -37,29 +38,30 @@ public class InitJenaCore  implements 
JenaSubsystemLifecycle {
 
     @Override
     public int level() {
-        return 10 ;
+        return 10;
     }
 
     public static void init() {
         if ( initialized )
-            return ;
+            return;
         synchronized (initLock) {
             if ( initialized ) {
-                JenaSystem.logLifecycle("JenaCore.init - skip") ;
-                return ;
+                JenaSystem.logLifecycle("JenaCore.init - skip");
+                return;
             }
-            initialized = true ;
-            JenaSystem.logLifecycle("JenaCore.init - start") ;
+            initialized = true;
+            JenaSystem.logLifecycle("JenaCore.init - start");
 
             // Initialization
             SystemIRIx.init();
             // Touch classes with constants.
             // This isn't necessary but it makes it more deterministic.
             // These constants are reused in various places.
-            RDF.getURI() ;
-            RDFS.getURI() ;
-            OWL.getURI() ;
-            JenaSystem.logLifecycle("JenaCore.init - finish") ;
+            RDF.getURI();
+            RDFS.getURI();
+            OWL.getURI();
+            Assembler.general();
+            JenaSystem.logLifecycle("JenaCore.init - finish");
         }
     }
 }
diff --git 
a/jena-core/src/test/java/org/apache/jena/assembler/acceptance/AllAccept.java 
b/jena-core/src/test/java/org/apache/jena/assembler/acceptance/AllAccept.java
index dbb3cdb324..a284c1f492 100644
--- 
a/jena-core/src/test/java/org/apache/jena/assembler/acceptance/AllAccept.java
+++ 
b/jena-core/src/test/java/org/apache/jena/assembler/acceptance/AllAccept.java
@@ -46,7 +46,7 @@ public class AllAccept extends AssemblerTestBase
     public void testUnadornedInferenceModel()
         {
         Resource root = resourceInModel( "x ja:reasoner R; R rdf:type 
ja:ReasonerFactory" );
-        Model m = Assembler.general.openModel( root );
+        Model m = Assembler.general().openModel( root );
         assertInstanceOf( InfModel.class, m );
         InfModel inf = (InfModel) m;
         assertIsoModels( empty, inf.getRawModel() );
@@ -61,7 +61,7 @@ public class AllAccept extends AssemblerTestBase
             data.write( fs, "N3" );
         }
         Resource root = resourceInModel( "x rdf:type ja:MemoryModel; x 
ja:content y; y ja:externalContent file:" + f.getAbsolutePath() );
-        Model m = Assembler.general.openModel( root );
+        Model m = Assembler.general().openModel( root );
         assertIsoModels( data, m );
         }
     }
diff --git 
a/jena-core/src/test/java/org/apache/jena/assembler/test/TestAssemblerGroup.java
 
b/jena-core/src/test/java/org/apache/jena/assembler/test/TestAssemblerGroup.java
index 79d04b0c6c..bc9a57badf 100644
--- 
a/jena-core/src/test/java/org/apache/jena/assembler/test/TestAssemblerGroup.java
+++ 
b/jena-core/src/test/java/org/apache/jena/assembler/test/TestAssemblerGroup.java
@@ -40,7 +40,7 @@ public class TestAssemblerGroup extends AssemblerTestBase
 
     @Override protected Class<? extends Assembler> getAssemblerClass()
         { return AssemblerGroup.class; }
-    
+
     public void testEmptyAssemblerGroup()
         {
         AssemblerGroup a = AssemblerGroup.create();
@@ -51,32 +51,32 @@ public class TestAssemblerGroup extends AssemblerTestBase
 
     protected void checkFailsType( Assembler a, String type )
         {
-        try 
-            { 
-            a.open( resourceInModel( "x rdf:type " + type ) ); 
-            fail( "should trap missing implementation" ); 
+        try
+            {
+            a.open( resourceInModel( "x rdf:type " + type ) );
+            fail( "should trap missing implementation" );
             }
         catch (NoSpecificTypeException e)
             {
             assertEquals( resource( "x" ), e.getRoot() );
             }
-//        catch (NoImplementationException e) 
-//            { 
-//            assertEquals( resource( "x" ), e.getRoot() ); 
+//        catch (NoImplementationException e)
+//            {
+//            assertEquals( resource( "x" ), e.getRoot() );
 //            assertEquals( JA.Object, e.getType() );
 //            assertNotNull( e.getAssembler() );
 //            }
         }
-    
+
     public static boolean loaded = false;
-    
+
     public static class Trivial {
         // Use the hook static method - copes with classes already loaded.
         public static void whenRequiredByAssembler(AssemblerGroup ag) {
             loaded = true;
         }
     }
-    
+
     public void testLoadsClasses()
         {
         AssemblerGroup a = AssemblerGroup.create();
@@ -88,14 +88,14 @@ public class TestAssemblerGroup extends AssemblerTestBase
         assertEquals( "mockmockmock", a.open( root ) );
         assertTrue( "the assembler group did not obey the ja:loadClass 
directive", loaded );
         }
-    
+
     static class MockAssembler extends AssemblerBase
         {
         @Override
         public Object open( Assembler a, Resource root, Mode mode )
             { return "mockmockmock"; }
         }
-    
+
     public void testSingletonAssemblerGroup()
         {
         AssemblerGroup a = AssemblerGroup.create();
@@ -103,7 +103,7 @@ public class TestAssemblerGroup extends AssemblerTestBase
         a.openModel( resourceInModel( "x rdf:type ja:InfModel" ) );
         checkFailsType( a, "js:DefaultModel" );
         }
-    
+
     public void testMultipleAssemblerGroup()
         {
         AssemblerGroup a = AssemblerGroup.create();
@@ -113,7 +113,7 @@ public class TestAssemblerGroup extends AssemblerTestBase
         assertFalse( a.openModel( resourceInModel( "y rdf:type ja:MemoryModel" 
) ) instanceof InfModel );
         checkFailsType( a, "js:DefaultModel" );
         }
-    
+
     public void testImpliedType()
         {
         AssemblerGroup a = AssemblerGroup.create();
@@ -122,22 +122,22 @@ public class TestAssemblerGroup extends AssemblerTestBase
         a.implementWith( JA.InfModel, new NamedObjectAssembler( resource( "x" 
), expected ) );
         assertSame( expected, a.open( root ) );
         }
-    
+
     public void testBuiltinGroup()
         {
-        AssemblerGroup g = Assembler.general;
+        AssemblerGroup g = Assembler.general();
         assertInstanceOf( Model.class, g.open( resourceInModel( "x rdf:type 
ja:DefaultModel" ) ) );
         assertInstanceOf( InfModel.class, g.open( resourceInModel( "x rdf:type 
ja:InfModel" ) ) );
         assertMemoryModel( g.open( resourceInModel( "x rdf:type 
ja:MemoryModel" ) ) );
         }
-    
-    private static Assembler mockAssembler = new AssemblerBase() 
+
+    private static Assembler mockAssembler = new AssemblerBase()
         {
         @Override
         public Object open( Assembler a, Resource root, Mode mode )
             { return null; }
         };
-    
+
     public void testAddingImplAddsSubclass()
         {
         final Model [] fullModel = new Model[1];
@@ -150,19 +150,19 @@ public class TestAssemblerGroup extends AssemblerTestBase
         Resource typeA = resource( "typeA" ), typeB = resource( "typeB" );
         g.implementWith( typeA, mockAssembler );
         g.implementWith( typeB, mockAssembler );
-        g.open( root );    
+        g.open( root );
         assertTrue( fullModel[0].contains( typeA, RDFS.subClassOf, JA.Object ) 
);
         assertTrue( fullModel[0].contains( typeB, RDFS.subClassOf, JA.Object ) 
);
         }
-    
-    public static class ImplementsSPOO 
+
+    public static class ImplementsSPOO
         {
         public static void whenRequiredByAssembler( AssemblerGroup g )
             {
             g.implementWith( resource( "SPOO" ), mockAssembler );
             }
         }
-    
+
     public void testClassesLoadedBeforeAddingTypes()
         {
         String className = ImplementsSPOO.class.getName();
@@ -172,7 +172,7 @@ public class TestAssemblerGroup extends AssemblerTestBase
         g.open( root );
         assertEquals( resourceSet( "SPOO ja:MemoryModel" ), 
g.implementsTypes() );
         }
-    
+
     protected void assertMemoryModel( Object object )
         {
         if (object instanceof Model)
@@ -183,12 +183,12 @@ public class TestAssemblerGroup extends AssemblerTestBase
         else
             fail( "expected a Model, but got a " + object.getClass() );
         }
-    
+
     public void testPassesSelfIn()
         {
         final AssemblerGroup group = AssemblerGroup.create();
         final Object result = new Object();
-        Assembler fake = new AssemblerBase() 
+        Assembler fake = new AssemblerBase()
             {
             @Override
             public Object open( Assembler a, Resource root, Mode irrelevant )
@@ -200,7 +200,7 @@ public class TestAssemblerGroup extends AssemblerTestBase
         group.implementWith( JA.Object, fake );
         assertSame( result, group.open( resourceInModel( "x rdf:type 
ja:Object" ) ) );
         }
-    
+
     public void testCopyPreservesMapping()
         {
         AssemblerGroup initial = AssemblerGroup
@@ -210,5 +210,5 @@ public class TestAssemblerGroup extends AssemblerTestBase
         AssemblerGroup copy = initial.copy();
         assertSame( initial.assemblerFor( JA.InfModel ), copy.assemblerFor( 
JA.InfModel ) );
         }
-    
+
     }
diff --git 
a/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java
 
b/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java
index ae286ce742..6465d4581b 100644
--- 
a/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java
+++ 
b/jena-core/src/test/java/org/apache/jena/assembler/test/TestBuiltinAssemblerGroup.java
@@ -67,7 +67,7 @@ public class TestBuiltinAssemblerGroup extends 
AssemblerTestBase
         {
         PrefixMapping wanted = PrefixMapping.Factory.create().setNsPrefix( 
"P", "spoo:/" );
         Resource r = resourceInModel( "x ja:prefix 'P'; x ja:namespace 
'spoo:/'" );
-        assertEquals( wanted, Assembler.general.open( r ) );
+        assertEquals( wanted, Assembler.general().open( r ) );
         }
 
     public void testRecognisesAndAssemblesMultiplePrefixMappings()
@@ -76,7 +76,7 @@ public class TestBuiltinAssemblerGroup extends 
AssemblerTestBase
             .setNsPrefix( "P", "spoo:/" ).setNsPrefix( "Q", "flarn:/" );
         Resource r = resourceInModel
             ( "x ja:includes y; x ja:includes z; y ja:prefix 'P'; y 
ja:namespace 'spoo:/'; z ja:prefix 'Q'; z ja:namespace 'flarn:/'" );
-        assertEquals( wanted, Assembler.general.open( r ) );
+        assertEquals( wanted, Assembler.general().open( r ) );
         }
 
     public static void assertEquals( PrefixMapping wanted, Object got )
@@ -89,6 +89,6 @@ public class TestBuiltinAssemblerGroup extends 
AssemblerTestBase
 
     private void assertAssemblerClass( Resource type, Class<?> C )
         {
-        assertInstanceOf( C, Assembler.general.assemblerFor( type ) );
+        assertInstanceOf( C, Assembler.general().assemblerFor( type ) );
         }
     }
diff --git 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
index 2e6ec3a8ca..b6eb248204 100644
--- 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
+++ 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
@@ -692,7 +692,7 @@ public class FusekiConfig {
         //AssemblerUtils.addRegistered(datasetDesc.getModel());
 
         Resource r = resource(configuration, datasetDesc);
-        Dataset ds = (Dataset)Assembler.general.open(r);
+        Dataset ds = (Dataset)Assembler.general().open(r);
         if ( ds == null )
             throw new FusekiConfigException("Bad description of a dataset: " + 
displayStr(configuration, datasetDesc));
         dsg = ds.asDatasetGraph();
diff --git 
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java 
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java
index 21bbf41629..191ea6c7ae 100644
--- a/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java
+++ b/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java
@@ -85,7 +85,7 @@ public class VocabTDB2
     static public synchronized void init() {
         if ( initialized )
             return;
-        registerWith(Assembler.general);
+        registerWith(Assembler.general());
         initialized = true;
     }
 
diff --git 
a/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java 
b/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
index bc80bec7a2..8bdb19fe53 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
@@ -264,7 +264,7 @@ public class Params {
                 throw new TextIndexException("Analyzer param spec 
text:paramValue must be an analyzer spec resource: " + valueNode);
             }
 
-            Analyzer analyzer = (Analyzer) Assembler.general.open((Resource) 
valueNode);
+            Analyzer analyzer = (Analyzer) Assembler.general().open((Resource) 
valueNode);
             return new ParamSpec(name, analyzer, Analyzer.class);
 
         default:
diff --git 
a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextAssembler.java
 
b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextAssembler.java
index 1d7daf3196..83c2e820d7 100644
--- 
a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextAssembler.java
+++ 
b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextAssembler.java
@@ -28,18 +28,18 @@ public class TextAssembler
         AssemblerUtils.init() ;
         AssemblerUtils.registerDataset(TextVocab.textDataset,      new 
TextDatasetAssembler()) ;
         
-        Assembler.general.implementWith(TextVocab.entityMap,        new 
EntityDefinitionAssembler()) ;
-        Assembler.general.implementWith(TextVocab.textIndexLucene,  new 
TextIndexLuceneAssembler()) ;
-        Assembler.general.implementWith(TextVocab.standardAnalyzer, new 
StandardAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.simpleAnalyzer,   new 
SimpleAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.keywordAnalyzer,  new 
KeywordAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.lowerCaseKeywordAnalyzer, 
new LowerCaseKeywordAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.localizedAnalyzer, new 
LocalizedAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.configurableAnalyzer, new 
ConfigurableAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.genericAnalyzer,  new 
GenericAnalyzerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.genericFilter,    new 
GenericFilterAssembler()) ;
-        Assembler.general.implementWith(TextVocab.genericTokenizer,  new 
GenericTokenizerAssembler()) ;
-        Assembler.general.implementWith(TextVocab.definedAnalyzer,  new 
DefinedAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.entityMap,        new 
EntityDefinitionAssembler()) ;
+        Assembler.general().implementWith(TextVocab.textIndexLucene,  new 
TextIndexLuceneAssembler()) ;
+        Assembler.general().implementWith(TextVocab.standardAnalyzer, new 
StandardAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.simpleAnalyzer,   new 
SimpleAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.keywordAnalyzer,  new 
KeywordAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.lowerCaseKeywordAnalyzer, 
new LowerCaseKeywordAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.localizedAnalyzer, new 
LocalizedAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.configurableAnalyzer, new 
ConfigurableAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.genericAnalyzer,  new 
GenericAnalyzerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.genericFilter,    new 
GenericFilterAssembler()) ;
+        Assembler.general().implementWith(TextVocab.genericTokenizer,  new 
GenericTokenizerAssembler()) ;
+        Assembler.general().implementWith(TextVocab.definedAnalyzer,  new 
DefinedAnalyzerAssembler()) ;
 
     }
 }
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithAnalyzer.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithAnalyzer.java
index 18ca245c50..3ca1bfaad2 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithAnalyzer.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithAnalyzer.java
@@ -93,7 +93,7 @@ public abstract class AbstractTestDatasetWithAnalyzer extends 
AbstractTestDatase
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();            
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
     
     public void init(String analyzer) {
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLocalizedAnalyzer.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLocalizedAnalyzer.java
index b22e4d4b5b..4716bcb734 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLocalizedAnalyzer.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLocalizedAnalyzer.java
@@ -105,7 +105,7 @@ public class TestDatasetWithLocalizedAnalyzer extends 
AbstractTestDatasetWithTex
 //        deleteOldFiles();
         indexDir.mkdirs();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
     
     
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneMultilingualTextIndex.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneMultilingualTextIndex.java
index b805c6a38e..06aef03cb2 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneMultilingualTextIndex.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneMultilingualTextIndex.java
@@ -100,7 +100,7 @@ public class TestDatasetWithLuceneMultilingualTextIndex 
extends AbstractTestData
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneStoredLiterals.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneStoredLiterals.java
index b3a90100d0..1fe2de1f27 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneStoredLiterals.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneStoredLiterals.java
@@ -112,7 +112,7 @@ public class TestDatasetWithLuceneStoredLiterals extends 
AbstractTestDatasetWith
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndex.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndex.java
index 06fee96368..63979c1217 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndex.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndex.java
@@ -89,7 +89,7 @@ public class TestDatasetWithLuceneTextIndex extends 
AbstractTestDatasetWithTextI
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();           
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
     
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndexWithLangField.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndexWithLangField.java
index 0f2be79a07..52c604d311 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndexWithLangField.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithLuceneTextIndexWithLangField.java
@@ -92,7 +92,7 @@ public class TestDatasetWithLuceneTextIndexWithLangField 
extends AbstractTestDat
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();           
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
     
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithSimpleAnalyzer.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithSimpleAnalyzer.java
index 4a34d66c20..69866842f5 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithSimpleAnalyzer.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithSimpleAnalyzer.java
@@ -101,7 +101,7 @@ public class TestDatasetWithSimpleAnalyzer extends 
AbstractTestDatasetWithTextIn
 //        deleteOldFiles();
         indexDir.mkdirs();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
     
     
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithStandardAnalyzer.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithStandardAnalyzer.java
index 6fb4ba0fed..f66f610a48 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithStandardAnalyzer.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithStandardAnalyzer.java
@@ -101,7 +101,7 @@ public class TestDatasetWithStandardAnalyzer extends 
AbstractTestDatasetWithText
 //        deleteOldFiles();
         indexDir.mkdirs();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
     
     
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
index 5ffa1db7b4..1f899ea435 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
@@ -144,7 +144,7 @@ public class TestTextDefineAnalyzers extends 
AbstractTestDatasetWithTextIndexBas
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextGraphIndexExtra2.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextGraphIndexExtra2.java
index 8476391012..7becd7bfd5 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextGraphIndexExtra2.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextGraphIndexExtra2.java
@@ -105,7 +105,7 @@ public class TestTextGraphIndexExtra2 extends 
AbstractTestDatasetWithTextIndexBa
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextHighlighting.java 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextHighlighting.java
index 1583e41036..f9456e7098 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextHighlighting.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextHighlighting.java
@@ -110,7 +110,7 @@ public class TestTextHighlighting extends 
AbstractTestDatasetWithTextIndexBase {
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements.java
index 1ac5ffff7f..6172ab0d44 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements.java
@@ -142,7 +142,7 @@ public class TestTextMultilingualEnhancements extends 
AbstractTestDatasetWithTex
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements02.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements02.java
index ccde292ce4..4785a4ba92 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements02.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultilingualEnhancements02.java
@@ -180,7 +180,7 @@ public class TestTextMultilingualEnhancements02 extends 
AbstractTestDatasetWithT
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultipleProplistNotWorking.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultipleProplistNotWorking.java
index c092b6708c..352d6088cd 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultipleProplistNotWorking.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextMultipleProplistNotWorking.java
@@ -150,7 +150,7 @@ public class TestTextMultipleProplistNotWorking extends 
AbstractTestDatasetWithT
         specModel.read(reader, "", "TURTLE");
         TextAssembler.init();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
     @After
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists.java 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists.java
index 532849e858..3bc5f5b25e 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists.java
@@ -140,7 +140,7 @@ public class TestTextPropLists extends 
AbstractTestDatasetWithTextIndexBase {
         TextAssembler.init();
         indexDir.mkdirs();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
 
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists02.java 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists02.java
index ee275abedb..f4753159c7 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists02.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/TestTextPropLists02.java
@@ -146,7 +146,7 @@ public class TestTextPropLists02 extends 
AbstractTestDatasetWithTextIndexBase {
         TextAssembler.init();
         indexDir.mkdirs();
         Resource root = specModel.getResource(SPEC_ROOT_URI);
-        dataset = (Dataset) Assembler.general.open(root);
+        dataset = (Dataset) Assembler.general().open(root);
     }
 
 
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestEntityMapAssembler.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestEntityMapAssembler.java
index d258fd722e..d3946b3e0a 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestEntityMapAssembler.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestEntityMapAssembler.java
@@ -100,31 +100,31 @@ public class TestEntityMapAssembler {
     
     @Test public void EntityHasMapEntryWithSimpleAnalyzer() {
         EntityDefinitionAssembler entDefAssem = new 
EntityDefinitionAssembler();
-        EntityDefinition entityDef = entDefAssem.open(Assembler.general, 
spec3,  null);
+        EntityDefinition entityDef = entDefAssem.open(Assembler.general(), 
spec3,  null);
         assertEquals(SimpleAnalyzer.class, 
entityDef.getAnalyzer(SPEC1_DEFAULT_FIELD).getClass());
     }
     
     @Test public void EntityHasMapEntryWithStandardAnalyzerAndStopWords() {
         EntityDefinitionAssembler entDefAssem = new 
EntityDefinitionAssembler();
-        EntityDefinition entityDef = entDefAssem.open(Assembler.general, 
spec4,  null);
+        EntityDefinition entityDef = entDefAssem.open(Assembler.general(), 
spec4,  null);
         assertEquals(StandardAnalyzer.class, 
entityDef.getAnalyzer(SPEC1_DEFAULT_FIELD).getClass());
     }
     
     @Test public void EntityHasMapEntryWithKeywordAnalyzer() {
         EntityDefinitionAssembler entDefAssem = new 
EntityDefinitionAssembler();
-        EntityDefinition entityDef = entDefAssem.open(Assembler.general, 
spec5,  null);
+        EntityDefinition entityDef = entDefAssem.open(Assembler.general(), 
spec5,  null);
         assertEquals(KeywordAnalyzer.class, 
entityDef.getAnalyzer(SPEC1_DEFAULT_FIELD).getClass());
     }    
     
     @Test public void EntityHasMapEntryWithLowerCaseKeywordAnalyzer() {
         EntityDefinitionAssembler entDefAssem = new 
EntityDefinitionAssembler();
-        EntityDefinition entityDef = entDefAssem.open(Assembler.general, 
spec6,  null);
+        EntityDefinition entityDef = entDefAssem.open(Assembler.general(), 
spec6,  null);
         assertEquals(LowerCaseKeywordAnalyzer.class, 
entityDef.getAnalyzer(SPEC1_DEFAULT_FIELD).getClass());
     }    
     
     @Test public void EntityHasMapEntryWithConfigurableAnalyzer() {
         EntityDefinitionAssembler entDefAssem = new 
EntityDefinitionAssembler();
-        EntityDefinition entityDef = entDefAssem.open(Assembler.general, 
spec7,  null);
+        EntityDefinition entityDef = entDefAssem.open(Assembler.general(), 
spec7,  null);
         assertEquals(ConfigurableAnalyzer.class, 
entityDef.getAnalyzer(SPEC1_DEFAULT_FIELD).getClass());
     }    
     
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
index c73f5da003..670147369a 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
@@ -57,24 +57,24 @@ public class TestTextDatasetAssembler extends 
AbstractTestTextAssembler {
 
     @Test
     public void testSimpleDatasetAssembler() {
-        Dataset dataset = (Dataset) Assembler.general.open(spec1);
+        Dataset dataset = (Dataset) Assembler.general().open(spec1);
         assertTrue(dataset.getContext().get(TextQuery.textIndex) instanceof 
TextIndexLucene);
         dataset.close();
     }
 
     @Test(expected = AssemblerException.class)
     public void testErrorOnNoDataset() {
-        Assembler.general.open(noDatasetPropertySpec);
+        Assembler.general().open(noDatasetPropertySpec);
     }
 
     @Test(expected = AssemblerException.class)
     public void testErrorOnNoIndex() {
-        Assembler.general.open(noIndexPropertySpec);
+        Assembler.general().open(noIndexPropertySpec);
     }
 
     @Test
     public void testCustomTextDocProducer() {
-        Dataset dataset = 
(Dataset)Assembler.general.open(customTextDocProducerSpec);
+        Dataset dataset = 
(Dataset)Assembler.general().open(customTextDocProducerSpec);
         DatasetGraphText dsgText = (DatasetGraphText)dataset.asDatasetGraph();
         assertTrue(dsgText.getMonitor() instanceof CustomTextDocProducer);
         dataset.close();
diff --git 
a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextIndexLuceneAssembler.java
 
b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextIndexLuceneAssembler.java
index d24c15e62b..d540a5f9c7 100644
--- 
a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextIndexLuceneAssembler.java
+++ 
b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextIndexLuceneAssembler.java
@@ -29,9 +29,9 @@ import org.junit.Test ;
 import static org.junit.Assert.* ;
 
 public class TestTextIndexLuceneAssembler extends AbstractTestTextAssembler {
-    
+
     @Test public void testIndexHasEntityMap() {
-        TextIndexLucene index = (TextIndexLucene) 
Assembler.general.open(SIMPLE_INDEX_SPEC);
+        TextIndexLucene index = (TextIndexLucene) 
Assembler.general().open(SIMPLE_INDEX_SPEC);
         try {
             assertEquals(RDFS.label.asNode(), 
index.getDocDef().getPrimaryPredicate());
         }
@@ -42,9 +42,9 @@ public class TestTextIndexLuceneAssembler extends 
AbstractTestTextAssembler {
 
     @Test public void testLiteralDirectory() {
         TextIndexLuceneAssembler assembler = new TextIndexLuceneAssembler();
-        
+
         Resource root = SIMPLE_INDEX_SPEC_LITERAL_DIR;
-        Assembler a = Assembler.general;
+        Assembler a = Assembler.general();
         // the open method is not supposed to throw exceptions when the 
directory is
         // a literal
         TextIndexLucene index = (TextIndexLucene)assembler.open(a, root, 
/*mode*/ null);
@@ -60,7 +60,7 @@ public class TestTextIndexLuceneAssembler extends 
AbstractTestTextAssembler {
         TextIndexLuceneAssembler assembler = new TextIndexLuceneAssembler();
 
         Resource root = SIMPLE_INDEX_SPEC2;
-        Assembler a = Assembler.general;
+        Assembler a = Assembler.general();
         // the open method is not supposed to throw exceptions when the 
directory is
         // a resource
         TextIndexLucene index = (TextIndexLucene) assembler.open(a, root, 
/*mode*/ null);
@@ -77,7 +77,7 @@ public class TestTextIndexLuceneAssembler extends 
AbstractTestTextAssembler {
         TextIndexLuceneAssembler assembler = new TextIndexLuceneAssembler();
 
         Resource root = SIMPLE_INDEX_SPEC_MEM_DIR;
-        Assembler a = Assembler.general;
+        Assembler a = Assembler.general();
         // the open method is not supposed to throw exceptions when the 
directory is
         // a iri resource
         TextIndexLucene index = (TextIndexLucene) assembler.open(a, root, 
/*mode*/ null);
@@ -88,9 +88,9 @@ public class TestTextIndexLuceneAssembler extends 
AbstractTestTextAssembler {
             index.close();
         }
     }
-    
+
     @Test public void testQueryAnalyzer() {
-        TextIndexLucene index = (TextIndexLucene) 
Assembler.general.open(SIMPLE_INDEX_SPEC_QUERY_ANALYZER);
+        TextIndexLucene index = (TextIndexLucene) 
Assembler.general().open(SIMPLE_INDEX_SPEC_QUERY_ANALYZER);
         try {
             assertTrue(index.getQueryAnalyzer() instanceof KeywordAnalyzer);
         }

Reply via email to