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 2015/05/06 20:40:33 UTC

[1/8] jena git commit: Using Java 8 types in o.a.j.atlas

Repository: jena
Updated Branches:
  refs/heads/master bc438d849 -> fa3bae848


http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDocProducerTriples.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDocProducerTriples.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDocProducerTriples.java
index 5445aeb..e3f0b73 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDocProducerTriples.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDocProducerTriples.java
@@ -18,13 +18,7 @@
 
 package org.apache.jena.query.spatial;
 
-import java.util.List;
-
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.atlas.iterator.Transform;
 import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.Triple ;
-import org.apache.jena.sparql.core.Quad ;
 import org.apache.jena.sparql.core.QuadAction ;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,17 +56,4 @@ public class SpatialDocProducerTriples implements SpatialDocProducer {
 			return;
 		context.index(g, s, p, o);
 	}
-
-	static Transform<Quad, Triple> QuadsToTriples = new Transform<Quad, Triple>() {
-		@Override
-		public Triple convert(Quad item) {
-			return item.asTriple();
-		}
-
-	};
-
-	static private List<Triple> quadsToTriples(List<Quad> quads) {
-		return Iter.map(quads, QuadsToTriples);
-	}
-
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrCache.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrCache.java b/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrCache.java
index ac9e67f..4b884e8 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrCache.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrCache.java
@@ -19,8 +19,8 @@
 package org.apache.jena.tdb.base.block;
 
 import java.util.Iterator ;
+import java.util.function.BiConsumer;
 
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 import org.apache.jena.atlas.lib.CacheFactory ;
 import org.slf4j.Logger ;
@@ -67,9 +67,9 @@ public class BlockMgrCache extends BlockMgrSync
         else
         {
             writeCache = CacheFactory.createCache(writeSlots) ;
-            writeCache.setDropHandler(new ActionKeyValue<Long, Block>(){
+            writeCache.setDropHandler(new BiConsumer<Long, Block>(){
                 @Override
-                public void apply(Long id, Block block)
+                public void accept(Long id, Block block)
                 { 
                     // We're inside a synchronized operation at this point.
                     log("Cache spill: write block: %d", id) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/index/bplustree/BPlusTreeRewriter.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/index/bplustree/BPlusTreeRewriter.java b/jena-tdb/src/main/java/org/apache/jena/tdb/index/bplustree/BPlusTreeRewriter.java
index a6c01ff..3f29ae3 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/index/bplustree/BPlusTreeRewriter.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/index/bplustree/BPlusTreeRewriter.java
@@ -23,10 +23,10 @@ import static org.apache.jena.tdb.index.bplustree.BPlusTreeRewriterUtils.printIn
 import static org.apache.jena.tdb.index.bplustree.BPlusTreeRewriterUtils.summarizeDataBlocks ;
 
 import java.util.Iterator ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.iterator.IteratorWithBuffer ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Pair ;
 import org.apache.jena.tdb.base.block.BlockMgr ;
 import org.apache.jena.tdb.base.buffer.PtrBuffer ;
@@ -141,17 +141,13 @@ public class BPlusTreeRewriter
         final RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr() ;
         Iterator<RecordBufferPage> iter = new RecordBufferPageLinker(new RecordBufferPagePacker(records, mgr)) ;
 
-        Transform<RecordBufferPage, Pair<Integer, Record>> transform = new Transform<RecordBufferPage, Pair<Integer, Record>>()
-        {
-            @Override
-            public Pair<Integer, Record> convert(RecordBufferPage rbp)
+        Function<RecordBufferPage, Pair<Integer, Record>> transform = rbp ->
             {
                 mgr.put(rbp) ;
                 Record r = rbp.getRecordBuffer().getHigh() ;
                 r = bpt.getRecordFactory().createKeyOnly(r) ;
                 return new Pair<>(rbp.getId(), r) ;
-            }
-        } ;
+            };
         // Write and convert to split pairs.
         Iterator<Pair<Integer, Record>> iter2 = Iter.map(iter, transform) ;
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/lib/NodeLib.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/lib/NodeLib.java b/jena-tdb/src/main/java/org/apache/jena/tdb/lib/NodeLib.java
index 3d1c8f7..e9cf3e9 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/lib/NodeLib.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/lib/NodeLib.java
@@ -27,7 +27,6 @@ import java.security.NoSuchAlgorithmException ;
 import java.util.Iterator ;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Bytes ;
 import org.apache.jena.atlas.lib.Pool ;
 import org.apache.jena.atlas.lib.PoolBase ;
@@ -222,12 +221,6 @@ public class NodeLib
     
     public static Iterator<Node> nodes(final NodeTable nodeTable, Iterator<NodeId> iter)
     {
-        return Iter.map(iter, new Transform<NodeId, Node>(){
-            @Override
-            public Node convert(NodeId item)
-            {
-                return nodeTable.getNodeForNodeId(item) ;
-            }
-        }) ;
+        return Iter.map(iter, nodeTable::getNodeForNodeId) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/lib/TupleLib.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/lib/TupleLib.java b/jena-tdb/src/main/java/org/apache/jena/tdb/lib/TupleLib.java
index ff9687e..1925c87 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/lib/TupleLib.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/lib/TupleLib.java
@@ -21,9 +21,7 @@ package org.apache.jena.tdb.lib;
 import static org.apache.jena.tdb.sys.SystemTDB.SizeOfLong ;
 
 import java.util.Iterator;
-
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Bytes ;
 import org.apache.jena.atlas.lib.ColumnMap ;
 import org.apache.jena.atlas.lib.InternalErrorException ;
@@ -45,47 +43,23 @@ public class TupleLib
 {
     public static  Iterator<Tuple<Node>> convertToNodes(final NodeTable nodeTable, Iterator<Tuple<NodeId>> iter)
     {
-        Transform<Tuple<NodeId>, Tuple<Node>> action =  new Transform<Tuple<NodeId>, Tuple<Node>>(){
-            @Override
-            public Tuple<Node> convert(Tuple<NodeId> item)
-            {
-                return tupleNodes(nodeTable, item) ;
-            }} ;
-        return Iter.map(iter, action) ;
+        return Iter.map(iter, item -> tupleNodes(nodeTable, item)) ;
     }
     
     public static Iterator<Tuple<NodeId>> convertToNodeId(final NodeTable nodeTable, Iterator<Tuple<Node>> iter)
     {
-        Transform<Tuple<Node>, Tuple<NodeId>> action =  new Transform<Tuple<Node>, Tuple<NodeId>>(){
-            @Override
-            public Tuple<NodeId> convert(Tuple<Node> item)
-            {
-                return tupleNodeIds(nodeTable, item) ;
-            }} ;
-        return Iter.map(iter, action) ;
+        return Iter.map(iter, item -> tupleNodeIds(nodeTable, item)) ;
     }
     
     //Leave - bypasses extract step in Tuple<NodeId> -> Tuple<Node> -> Triple
     public static Iterator<Triple> convertToTriples(final NodeTable nodeTable, Iterator<Tuple<NodeId>> iter)
     {
-        Transform<Tuple<NodeId>, Triple> action =  new Transform<Tuple<NodeId>, Triple>(){
-            @Override
-            public Triple convert(Tuple<NodeId> item)
-            {
-                return triple(nodeTable, item) ;
-            }} ;
-        return Iter.map(iter, action) ;
+        return Iter.map(iter, item -> triple(nodeTable, item)) ;
     }
     
     public static Iterator<Quad> convertToQuads(final NodeTable nodeTable, Iterator<Tuple<NodeId>> iter)
     {
-        Transform<Tuple<NodeId>, Quad> action =  new Transform<Tuple<NodeId>, Quad>(){
-            @Override
-            public Quad convert(Tuple<NodeId> item)
-            {
-                return quad(nodeTable, item) ;
-            }} ;
-        return Iter.map(iter, action) ;
+        return Iter.map(iter, item -> quad(nodeTable, item)) ;
     }
     
     public static Tuple<Node> tupleNodes(NodeTable nodeTable, Tuple<NodeId> ids) 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/solver/OpExecutorTDB1.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/OpExecutorTDB1.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/OpExecutorTDB1.java
index e1ab89f..77cfbfa 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/OpExecutorTDB1.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/OpExecutorTDB1.java
@@ -18,8 +18,9 @@
 
 package org.apache.jena.tdb.solver;
 
-import org.apache.jena.atlas.iterator.Filter ;
-import org.apache.jena.atlas.lib.Tuple ;
+import java.util.function.Predicate;
+
+import org.apache.jena.atlas.lib.Tuple;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
@@ -44,7 +45,7 @@ import org.apache.jena.sparql.expr.ExprList ;
 import org.apache.jena.sparql.mgt.Explain ;
 import org.apache.jena.tdb.store.DatasetGraphTDB ;
 import org.apache.jena.tdb.store.GraphTDB ;
-import org.apache.jena.tdb.store.NodeId ;
+import org.apache.jena.tdb.store.NodeId;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 
@@ -345,7 +346,7 @@ public class OpExecutorTDB1 extends OpExecutor
     protected QueryIterator execute(OpDatasetNames dsNames, QueryIterator input)
     { 
         DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
-        Filter<Tuple<NodeId>> filter = QC2.getFilter(execCxt.getContext()) ;
+        Predicate<Tuple<NodeId>> filter = QC2.getFilter(execCxt.getContext()) ;
         Node gn = dsNames.getGraphNode() ;
         if ( Var.isVar(gn) )
             return SolverLib.graphNames(ds, dsNames.getGraphNode(), input, filter, execCxt) ;
@@ -368,7 +369,7 @@ public class OpExecutorTDB1 extends OpExecutor
     /** An op executor that simply executes a BGP or QuadPattern without any reordering */ 
     private static class OpExecutorPlainTDB extends OpExecutor
     {
-        Filter<Tuple<NodeId>> filter = null ;
+        Predicate<Tuple<NodeId>> filter = null ;
         
         public OpExecutorPlainTDB(ExecutionContext execCxt)
         {

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QC2.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QC2.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QC2.java
index 26200c3..331ac59 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QC2.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/QC2.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.tdb.solver;
 
-import org.apache.jena.atlas.iterator.Filter ;
+import java.util.function.Predicate;
+
 import org.apache.jena.atlas.lib.Tuple ;
 import org.apache.jena.sparql.util.Context ;
 import org.apache.jena.tdb.TDBException ;
@@ -27,13 +28,13 @@ import org.apache.jena.tdb.sys.SystemTDB ;
 
 public class QC2
 {
-    public static Filter<Tuple<NodeId>> getFilter(Context context)
+    public static Predicate<Tuple<NodeId>> getFilter(Context context)
     {
         Object x = context.get(SystemTDB.symTupleFilter) ;
 
         try {
             @SuppressWarnings("unchecked")
-            Filter<Tuple<NodeId>> f = (Filter<Tuple<NodeId>>)x ;
+            Predicate<Tuple<NodeId>> f = (Predicate<Tuple<NodeId>>)x ;
             return f ;
         } catch (ClassCastException ex)
         {
@@ -41,7 +42,7 @@ public class QC2
         }
     }
 
-    public static void setFilter(Context context, Filter<Tuple<NodeId>> filter)
+    public static void setFilter(Context context, Predicate<Tuple<NodeId>> filter)
     {
         context.set(SystemTDB.symTupleFilter, filter) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/solver/SolverLib.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/SolverLib.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/SolverLib.java
index b92bfc1..cf813e1 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/SolverLib.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/SolverLib.java
@@ -21,6 +21,9 @@ package org.apache.jena.tdb.solver;
 import static org.apache.jena.tdb.lib.Lib2.printAbbrev ;
 
 import java.util.* ;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Predicate;
 
 import org.apache.jena.atlas.iterator.* ;
 import org.apache.jena.atlas.lib.Tuple ;
@@ -54,7 +57,7 @@ public class SolverLib
     
     /** Non-reordering execution of a basic graph pattern, given a iterator of bindings as input */ 
     public static QueryIterator execute(GraphTDB graph, BasicPattern pattern, 
-                                        QueryIterator input, Filter<Tuple<NodeId>> filter,
+                                        QueryIterator input, Predicate<Tuple<NodeId>> filter,
                                         ExecutionContext execCxt)
     {
         // Maybe default graph or named graph.
@@ -67,7 +70,7 @@ public class SolverLib
      *  GraphNode is null for execution over the real default graph.
      */ 
     public static QueryIterator execute(DatasetGraphTDB ds, Node graphNode, BasicPattern pattern,
-                                        QueryIterator input, Filter<Tuple<NodeId>> filter,
+                                        QueryIterator input, Predicate<Tuple<NodeId>> filter,
                                         ExecutionContext execCxt)
     {
         NodeTupleTable ntt = ds.chooseNodeTupleTable(graphNode) ;
@@ -81,14 +84,14 @@ public class SolverLib
      * (in convToBinding(BindingNodeId, NodeTable)
      */
     public static Iterator<Binding> convertToNodes(Iterator<BindingNodeId> iterBindingIds, NodeTable nodeTable)
-    { return Iter.map(iterBindingIds, convToBinding(nodeTable)) ; }
+    { return Iter.map(iterBindingIds, bindingNodeIds -> convToBinding(bindingNodeIds, nodeTable)) ; }
     
     // The worker.  Callers choose the NodeTupleTable.  
     //     graphNode may be Node.ANY, meaning we should make triples unique.
     //     graphNode may be null, meaning default graph
 
     private static QueryIterator execute(NodeTupleTable nodeTupleTable, Node graphNode, BasicPattern pattern, 
-                                         QueryIterator input, Filter<Tuple<NodeId>> filter,
+                                         QueryIterator input, Predicate<Tuple<NodeId>> filter,
                                          ExecutionContext execCxt)
     {
         if ( Quad.isUnionGraph(graphNode) )
@@ -202,21 +205,11 @@ public class SolverLib
     public static Iterator<BindingNodeId> solve(NodeTupleTable nodeTupleTable, 
                                                 Tuple<Node> tuple,
                                                 boolean anyGraph,
-                                                Iterator<BindingNodeId> chain, Filter<Tuple<NodeId>> filter,
+                                                Iterator<BindingNodeId> chain, Predicate<Tuple<NodeId>> filter,
                                                 ExecutionContext execCxt)
     {
         return new StageMatchTuple(nodeTupleTable, chain, tuple, anyGraph, filter, execCxt) ;
     }
-    
-    // Transform : BindingNodeId ==> Binding
-    private static Transform<BindingNodeId, Binding> convToBinding(final NodeTable nodeTable) {
-        return new Transform<BindingNodeId, Binding>() {
-            @Override
-            public Binding convert(BindingNodeId bindingNodeIds) {
-                return convToBinding(bindingNodeIds, nodeTable) ;
-            }
-        } ;
-    }
 
     public static Binding convToBinding(BindingNodeId bindingNodeIds, NodeTable nodeTable) {
         if ( true )
@@ -235,15 +228,9 @@ public class SolverLib
     }
     
     // Transform : Binding ==> BindingNodeId
-    public static Transform<Binding, BindingNodeId> convFromBinding(final NodeTable nodeTable)
+    public static Function<Binding, BindingNodeId> convFromBinding(final NodeTable nodeTable)
     {
-        return new Transform<Binding, BindingNodeId>()
-        {
-            @Override
-            public BindingNodeId convert(Binding binding) {
-                return SolverLib.convert(binding, nodeTable) ;
-            }
-        } ;
+        return binding -> SolverLib.convert(binding, nodeTable);
     }
     
     /** Binding ==> BindingNodeId, given a NodeTable */
@@ -276,7 +263,7 @@ public class SolverLib
     
     /** Find whether a specific graph name is in the quads table. */
     public static QueryIterator testForGraphName(DatasetGraphTDB ds, Node graphNode, QueryIterator input,
-                                                 Filter<Tuple<NodeId>> filter, ExecutionContext execCxt) {
+                                                 Predicate<Tuple<NodeId>> filter, ExecutionContext execCxt) {
         NodeId nid = TDBInternal.getNodeId(ds, graphNode) ;
         boolean exists = !NodeId.isDoesNotExist(nid) ;
         if ( exists ) {
@@ -302,7 +289,7 @@ public class SolverLib
 
     /** Find all the graph names in the quads table. */
     public static QueryIterator graphNames(DatasetGraphTDB ds, Node graphNode, QueryIterator input,
-                                           Filter<Tuple<NodeId>> filter, ExecutionContext execCxt) {
+                                           Predicate<Tuple<NodeId>> filter, ExecutionContext execCxt) {
         List<Abortable> killList = new ArrayList<>() ;
         Iterator<Tuple<NodeId>> iter1 = ds.getQuadTable().getNodeTupleTable().find(NodeId.NodeIdAny, NodeId.NodeIdAny,
                                                                                    NodeId.NodeIdAny, NodeId.NodeIdAny) ;
@@ -319,14 +306,7 @@ public class SolverLib
         Iterator<Node> iter4 = NodeLib.nodes(ds.getQuadTable().getNodeTupleTable().getNodeTable(), iter3) ;
 
         final Var var = Var.alloc(graphNode) ;
-        Transform<Node, Binding> bindGraphName = new Transform<Node, Binding>() {
-            @Override
-            public Binding convert(Node node) {
-                return BindingFactory.binding(var, node) ;
-            }
-        } ;
-
-        Iterator<Binding> iterBinding = Iter.map(iter4, bindGraphName) ;
+        Iterator<Binding> iterBinding = Iter.map(iter4, node -> BindingFactory.binding(var, node)) ;
         // Not abortable.
         return new QueryIterTDB(iterBinding, killList, input, execCxt) ;
     }
@@ -364,10 +344,6 @@ public class SolverLib
     }
     
     // -- Mutating "transform in place"
-    private static Action<Tuple<NodeId>> quadsToAnyTriples = new Action<Tuple<NodeId>>(){
-        @Override
-        public void apply(Tuple<NodeId> item)
-        { item.tuple()[0] = NodeId.NodeIdAny ; }
-    } ;
+    private static Consumer<Tuple<NodeId>> quadsToAnyTriples = item -> item.tuple()[0] = NodeId.NodeIdAny ;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageGeneratorDirectTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageGeneratorDirectTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageGeneratorDirectTDB.java
index bb76f7c..78bd791 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageGeneratorDirectTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageGeneratorDirectTDB.java
@@ -18,15 +18,16 @@
 
 package org.apache.jena.tdb.solver;
 
-import org.apache.jena.atlas.iterator.Filter ;
-import org.apache.jena.atlas.lib.Tuple ;
+import java.util.function.Predicate;
+
+import org.apache.jena.atlas.lib.Tuple;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.sparql.core.BasicPattern ;
 import org.apache.jena.sparql.engine.ExecutionContext ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.main.StageGenerator ;
 import org.apache.jena.tdb.store.GraphTDB ;
-import org.apache.jena.tdb.store.NodeId ;
+import org.apache.jena.tdb.store.NodeId;
 
 /** Execute TDB requests directly -- no reordering
  *  Using OpExecutor is preferred.
@@ -51,7 +52,7 @@ public class StageGeneratorDirectTDB implements StageGenerator
             // Not us - bounce up the StageGenerator chain
             return above.execute(pattern, input, execCxt) ;
         GraphTDB graph = (GraphTDB)g ;
-        Filter<Tuple<NodeId>> filter = QC2.getFilter(execCxt.getContext()) ;
+        Predicate<Tuple<NodeId>> filter = QC2.getFilter(execCxt.getContext()) ;
         return SolverLib.execute(graph, pattern, input, filter, execCxt) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageMatchTuple.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageMatchTuple.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageMatchTuple.java
index 77cdbdd..398502e 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageMatchTuple.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/StageMatchTuple.java
@@ -21,6 +21,9 @@ package org.apache.jena.tdb.solver;
 
 import java.util.Iterator;
 import java.util.List;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Predicate;
 
 import org.apache.jena.atlas.iterator.* ;
 import org.apache.jena.atlas.lib.Tuple ;
@@ -38,11 +41,11 @@ public class StageMatchTuple extends RepeatApplyIterator<BindingNodeId>
 
     private final ExecutionContext execCxt ;
     private boolean anyGraphs ;
-    private Filter<Tuple<NodeId>> filter ;
+    private Predicate<Tuple<NodeId>> filter ;
 
     public StageMatchTuple(NodeTupleTable nodeTupleTable, Iterator<BindingNodeId> input, 
                             Tuple<Node> tuple, boolean anyGraphs, 
-                            Filter<Tuple<NodeId>> filter, 
+                            Predicate<Tuple<NodeId>> filter, 
                             ExecutionContext execCxt)
     {
         super(input) ;
@@ -117,10 +120,7 @@ public class StageMatchTuple extends RepeatApplyIterator<BindingNodeId>
         }
         
         // Map Tuple<NodeId> to BindingNodeId
-        Transform<Tuple<NodeId>, BindingNodeId> binder = new Transform<Tuple<NodeId>, BindingNodeId>()
-        {
-            @Override
-            public BindingNodeId convert(Tuple<NodeId> tuple)
+        Function<Tuple<NodeId>, BindingNodeId> binder = tuple -> 
             {
                 BindingNodeId output = new BindingNodeId(input) ;
                 for ( int i = 0 ; i < var.length ; i++ )
@@ -134,27 +134,11 @@ public class StageMatchTuple extends RepeatApplyIterator<BindingNodeId>
                     output.put(v, id) ;
                 }
                 return output ;
-            }
         } ;
         
         return Iter.iter(iterMatches).map(binder).removeNulls() ;
     }
     
-   
-    // -- Copying
-    private static Transform<Tuple<NodeId>,Tuple<NodeId>> projectToTriples = new Transform<Tuple<NodeId>,Tuple<NodeId>>(){
-        @Override
-        public Tuple<NodeId> convert(Tuple<NodeId> item)
-        {
-            // Zap graph node id.
-            Tuple<NodeId> t2 = Tuple.createTuple(NodeId.NodeIdAny,    // Can't be null - gets bound to a daft variable.
-                                                 item.get(1),
-                                                 item.get(2),
-                                                 item.get(3)) ;
-            return t2 ;
-        } } ;
-    
-    
     private static Iterator<Tuple<NodeId>> print(Iterator<Tuple<NodeId>> iter)
     {
         if ( ! iter.hasNext() )
@@ -202,9 +186,5 @@ public class StageMatchTuple extends RepeatApplyIterator<BindingNodeId>
     }
     
     // -- Mutating "transform in place"
-    private static Action<Tuple<NodeId>> quadsToAnyTriples = new Action<Tuple<NodeId>>(){
-        @Override
-        public void apply(Tuple<NodeId> item)
-        { item.tuple()[0] = NodeId.NodeIdAny ; }
-    } ;
+    private static Consumer<Tuple<NodeId>> quadsToAnyTriples = item -> item.tuple()[0] = NodeId.NodeIdAny ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/solver/stats/StatsCollectorBase.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/stats/StatsCollectorBase.java b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/stats/StatsCollectorBase.java
index 620b34a..72f0d97 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/solver/stats/StatsCollectorBase.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/solver/stats/StatsCollectorBase.java
@@ -22,7 +22,6 @@ package org.apache.jena.tdb.solver.stats;
 import java.util.HashMap ;
 import java.util.Map ;
 
-import org.apache.jena.atlas.lib.MapUtils ;
 import org.apache.jena.graph.Node ;
 
 /** Statistics collector, general purpose */
@@ -41,9 +40,9 @@ abstract class StatsCollectorBase<T>
     public void record(T g, T s, T p, T o)
     {
         count++ ;
-        MapUtils.increment(predicates, p) ;
+		predicates.put(p, predicates.getOrDefault(p, 0) + 1);
         if ( typeTrigger != null && typeTrigger.equals(p) )
-            MapUtils.increment(types, o) ;
+        		types.put(o, types.getOrDefault(o, 0) + 1);
     }
 
     protected abstract Map<Node, Integer> convert(Map<T, Integer> map) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
index c577861..55dfe53 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
@@ -20,9 +20,7 @@ package org.apache.jena.tdb.store;
 
 
 import java.util.Iterator ;
-
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Closeable ;
 import org.apache.jena.atlas.lib.Sync ;
 import org.apache.jena.atlas.lib.Tuple ;
@@ -171,21 +169,12 @@ public class DatasetGraphTDB extends DatasetGraphCaching
     public ReorderTransformation getReorderTransform()      { return transform ; }
     
     public DatasetPrefixesTDB getPrefixes()                 { return prefixes ; }
-
-    static private Transform<Tuple<NodeId>, NodeId> project0 = new Transform<Tuple<NodeId>, NodeId>()
-    {
-        @Override
-        public NodeId convert(Tuple<NodeId> item)
-        {
-            return item.get(0) ;
-        }
-    } ;
     
     @Override
     public Iterator<Node> listGraphNodes()
     {
         Iterator<Tuple<NodeId>> x = quadTable.getNodeTupleTable().findAll() ;
-        Iterator<NodeId> z =  Iter.iter(x).map(project0).distinct() ;
+        Iterator<NodeId> z =  Iter.iter(x).map(t -> t.get(0)).distinct() ;
         return NodeLib.nodes(quadTable.getNodeTupleTable().getNodeTable(), z) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
index 17d2e25..93fbf69 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
@@ -19,9 +19,9 @@
 package org.apache.jena.tdb.store ;
 
 import java.util.Iterator ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Closeable ;
 import org.apache.jena.atlas.lib.Sync ;
 import org.apache.jena.atlas.lib.Tuple ;
@@ -166,18 +166,11 @@ public class GraphTDB extends GraphView implements Closeable, Sync {
         return (int)Iter.count(iter) ;
     }
 
-    private static Transform<Tuple<NodeId>, Tuple<NodeId>> project4TupleTo3Tuple = new Transform<Tuple<NodeId>, Tuple<NodeId>>() {
-                                                                                     @Override
-                                                                                     public Tuple<NodeId> convert(Tuple<NodeId> item) {
-                                                                                         if ( item.size() != 4 )
-                                                                                             throw new TDBException(
-                                                                                                                    "Expected a Tuple of 4, got: "
-                                                                                                                        + item) ;
-                                                                                         return Tuple.createTuple(item.get(1),
-                                                                                                                  item.get(2),
-                                                                                                                  item.get(3)) ;
-                                                                                     }
-                                                                                 } ;
+	private static Function<Tuple<NodeId>, Tuple<NodeId>> project4TupleTo3Tuple = item -> {
+		if (item.size() != 4)
+			throw new TDBException("Expected a Tuple of 4, got: " + item);
+		return Tuple.createTuple(item.get(1), item.get(2), item.get(3));
+	};
 
     // Convert from Iterator<Quad> to Iterator<Triple>
     static class ProjectQuadsToTriples implements Iterator<Triple> {

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/store/QuadTable.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/QuadTable.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/QuadTable.java
index 894b49e..313d8d5 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/QuadTable.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/QuadTable.java
@@ -20,9 +20,7 @@ package org.apache.jena.tdb.store;
 
 
 import java.util.Iterator ;
-
 import org.apache.jena.atlas.iterator.NullIterator ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Tuple ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -89,13 +87,6 @@ public class QuadTable extends TableBase
         Iterator<Quad> iter2 = TupleLib.convertToQuads(table.getNodeTable(), iter) ;
         return iter2 ;
     }
-    
-    private static Transform<Tuple<Node>, Quad> action = new Transform<Tuple<Node>, Quad>(){
-        @Override
-        public Quad convert(Tuple<Node> item)
-        {
-            return new Quad(item.get(0), item.get(1), item.get(2), item.get(3)) ;
-        }} ; 
 
     /** Clear - does not clear the associated node tuple table */
     public void clearQuads()

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/store/TripleTable.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/TripleTable.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/TripleTable.java
index e79f7da..5dfc17e 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/TripleTable.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/TripleTable.java
@@ -20,9 +20,7 @@ package org.apache.jena.tdb.store;
 
 
 import java.util.Iterator ;
-
 import org.apache.jena.atlas.iterator.NullIterator ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Tuple ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -79,13 +77,6 @@ public class TripleTable extends TableBase
         return iter2 ;
     }
     
-    private static Transform<Tuple<Node>, Triple> action = new Transform<Tuple<Node>, Triple>(){
-        @Override
-        public Triple convert(Tuple<Node> item)
-        {
-            return new Triple(item.get(0), item.get(1), item.get(2)) ;
-        }} ; 
-   
     /** Clear - does not clear the associated node tuple table */
     public void clearTriples()
     { table.clear() ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/store/nodetable/NodeTableNative.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/nodetable/NodeTableNative.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/nodetable/NodeTableNative.java
index e5796ca..51ceee1 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/nodetable/NodeTableNative.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/nodetable/NodeTableNative.java
@@ -22,9 +22,9 @@ import static org.apache.jena.tdb.lib.NodeLib.setHash ;
 
 import java.nio.ByteBuffer ;
 import java.util.Iterator ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Pair ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.tdb.TDBException ;
@@ -214,37 +214,16 @@ public class NodeTableNative implements NodeTable
     @Override
     public Iterator<Pair<NodeId, Node>> all() { return all2() ; }
     
-    private Iterator<Pair<NodeId, Node>> all1()
-    
-    {
-        // Could be quicker by hoping down the objects files.
-        Iterator<Record> iter = nodeHashToId.iterator() ;
-
-        Transform<Record, Pair<NodeId, Node>> transform = new Transform<Record, Pair<NodeId, Node>>() {
-            @Override
-            public Pair<NodeId, Node> convert(Record item)
-            {
-                NodeId id = NodeId.create(item.getValue(), 0) ;
-                Node n = NodeLib.fetchDecode(id.getId(), getObjects()) ;
-                return new Pair<>(id, n) ;
-            }};
-        return Iter.map(iter, transform) ;
-    }
-
     private Iterator<Pair<NodeId, Node>> all2()
     {
         Iterator<Pair<Long, ByteBuffer>> objs = objects.all() ; 
         
-        Transform<Pair<Long, ByteBuffer>, Pair<NodeId, Node>> transform = new Transform<Pair<Long, ByteBuffer>, Pair<NodeId, Node>>() {
-            @Override
-            public Pair<NodeId, Node> convert(Pair<Long, ByteBuffer> item)
-            {
-                NodeId id = NodeId.create(item.car().longValue()) ;
-                ByteBuffer bb = item.cdr();
-                Node n = NodeLib.decode(bb) ;
-                return new Pair<>(id, n) ;
-            }
-        };
+		Function<Pair<Long, ByteBuffer>, Pair<NodeId, Node>> transform = item -> {
+			NodeId id = NodeId.create(item.car().longValue());
+			ByteBuffer bb = item.cdr();
+			Node n = NodeLib.decode(bb);
+			return new Pair<>(id, n);
+		};
         return Iter.map(objs, transform) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/main/java/org/apache/jena/tdb/store/tupletable/TupleIndexRecord.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/tupletable/TupleIndexRecord.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/tupletable/TupleIndexRecord.java
index d4079b0..ead540e 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/tupletable/TupleIndexRecord.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/tupletable/TupleIndexRecord.java
@@ -22,6 +22,7 @@ import static java.lang.String.format;
 import static org.apache.jena.tdb.sys.SystemTDB.SizeOfNodeId ;
 
 import java.util.Iterator;
+import java.util.function.Predicate;
 
 import org.apache.jena.atlas.iterator.* ;
 import org.apache.jena.atlas.lib.Bytes ;
@@ -166,7 +167,7 @@ public class TupleIndexRecord extends TupleIndexBase
             iter = index.iterator(minRec, maxRec) ;
         }
         
-        Iterator<Tuple<NodeId>> tuples = Iter.map(iter, transformToTuple) ;
+        Iterator<Tuple<NodeId>> tuples = Iter.map(iter, item -> TupleLib.tuple(item, colMap)) ;
         
         if ( leadingIdx < numSlots-1 )
         {
@@ -185,25 +186,16 @@ public class TupleIndexRecord extends TupleIndexBase
     public Iterator<Tuple<NodeId>> all()
     {
         Iterator<Record> iter = index.iterator() ;
-        return Iter.map(iter, transformToTuple) ;
+        return Iter.map(iter, item -> TupleLib.tuple(item, colMap)) ;
     }
     
-    private final Transform<Record, Tuple<NodeId>> transformToTuple = new Transform<Record, Tuple<NodeId>>()
-    {
-        @Override
-        public final Tuple<NodeId> convert(Record item)
-        {
-            return TupleLib.tuple(item, colMap) ;
-        }
-    } ; 
-    
     private Iterator<Tuple<NodeId>> scan(Iterator<Tuple<NodeId>> iter,
                                          final Tuple<NodeId> pattern)
     {
-        Filter<Tuple<NodeId>> filter = new Filter<Tuple<NodeId>>()
+        Predicate<Tuple<NodeId>> filter = new Predicate<Tuple<NodeId>>()
         {
             @Override
-            public boolean accept(Tuple<NodeId> item)
+            public boolean test(Tuple<NodeId> item)
             {
                 // Check on pattern and item (both in natural order)
                 for ( int i = 0 ; i < tupleLength ; i++ )

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/test/java/org/apache/jena/tdb/base/record/RecordLib.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/org/apache/jena/tdb/base/record/RecordLib.java b/jena-tdb/src/test/java/org/apache/jena/tdb/base/record/RecordLib.java
index 79053ad..9d72156 100644
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/base/record/RecordLib.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/base/record/RecordLib.java
@@ -24,7 +24,6 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Bytes ;
 import org.apache.jena.tdb.base.record.Record ;
 import org.apache.jena.tdb.base.record.RecordFactory ;
@@ -83,13 +82,7 @@ public class RecordLib
 
     public static List<Integer> toIntList(Iterator<Record> iter)
     {
-        return Iter.toList(Iter.map(iter, new Transform<Record, Integer>(){
-            @Override
-            public Integer convert(Record item)
-            {
-                return recordToInt(item) ;
-            }}
-        )) ;
+        return Iter.toList(Iter.map(iter, item -> recordToInt(item))) ;
     }
     
     public static Record r(int v)

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-tdb/src/test/java/org/apache/jena/tdb/store/TestQuadFilter.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/org/apache/jena/tdb/store/TestQuadFilter.java b/jena-tdb/src/test/java/org/apache/jena/tdb/store/TestQuadFilter.java
index ee2ff43..9752dac 100644
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/store/TestQuadFilter.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/store/TestQuadFilter.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.tdb.store;
 
-import org.apache.jena.atlas.iterator.Filter ;
+import java.util.function.Predicate;
+
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.atlas.lib.Tuple ;
 import org.apache.jena.graph.NodeFactory ;
@@ -61,23 +62,12 @@ public class TestQuadFilter extends BaseTest
     }
     
     /** Create a filter to exclude the graph http://example/g2 */
-    private static Filter<Tuple<NodeId>> createFilter(Dataset ds)
+    private static Predicate<Tuple<NodeId>> createFilter(Dataset ds)
     {
         DatasetGraphTDB dsg = (DatasetGraphTDB)(ds.asDatasetGraph()) ;
         final NodeTable nodeTable = dsg.getQuadTable().getNodeTupleTable().getNodeTable() ;
         final NodeId target = nodeTable.getNodeIdForNode(NodeFactory.createURI(graphToHide)) ;
-        Filter<Tuple<NodeId>> filter = new Filter<Tuple<NodeId>>() {
-            @Override
-            public boolean accept(Tuple<NodeId> item)
-            {
-                // Reverse the lookup as a demo
-                //Node n = nodeTable.getNodeForNodeId(target) ;
-                //System.err.println(item) ;
-                if ( item.size() == 4 && item.get(0).equals(target) )
-                    return false ;
-                return true ;
-            } } ;
-        return filter ;
+        return item -> !( item.size() == 4 && item.get(0).equals(target) );
     }            
 
     @Test public void quad_filter_1()   { test("SELECT * { GRAPH ?g { ?s ?p ?o } }", 1, 2) ; }
@@ -86,7 +76,7 @@ public class TestQuadFilter extends BaseTest
     
     private void test(String qs, int withFilter, int withoutFilter)
     {
-        Filter<Tuple<NodeId>> filter = createFilter(ds) ;
+        Predicate<Tuple<NodeId>> filter = createFilter(ds) ;
         
 //    private static void example(Dataset ds, Filter<Tuple<NodeId>> filter)
 //    {


[7/8] jena git commit: JENA-931: Merge commit 'refs/pull/56/head' of github.com:apache/jena

Posted by an...@apache.org.
JENA-931: Merge commit 'refs/pull/56/head' of github.com:apache/jena

This closes #56


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

Branch: refs/heads/master
Commit: d480bd1fc36d4f7a9b286a607dbc66ea4988b64d
Parents: bc438d8 0ef8184
Author: Andy Seaborne <an...@apache.org>
Authored: Wed May 6 19:27:12 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed May 6 19:29:13 2015 +0100

----------------------------------------------------------------------
 .../org/apache/jena/atlas/csv/CSVParser.java    |   9 +-
 .../org/apache/jena/atlas/json/JsonBuilder.java |   4 +-
 .../org/apache/jena/atlas/web/MediaType.java    |   4 +-
 .../org/apache/jena/query/SortCondition.java    |   5 +-
 .../java/org/apache/jena/riot/RDFFormat.java    |   7 +-
 .../org/apache/jena/riot/RDFFormatVariant.java  |   5 +-
 .../org/apache/jena/riot/RDFWriterRegistry.java |  29 ++-
 .../jena/riot/adapters/RDFReaderRIOT_Web.java   |   4 +-
 .../org/apache/jena/riot/lang/JsonLDReader.java |   4 +-
 .../jena/riot/other/BatchedStreamRDF.java       |   6 +-
 .../java/org/apache/jena/riot/other/GLib.java   |  58 +----
 .../org/apache/jena/riot/out/JsonLDWriter.java  |   8 +-
 .../jena/riot/out/SinkQuadBracedOutput.java     |   4 +-
 .../process/normalize/CanonicalizeLiteral.java  |   6 +-
 .../apache/jena/riot/system/PrefixMapBase.java  |  25 +--
 .../org/apache/jena/riot/thrift/BinRDF.java     |  12 +-
 .../java/org/apache/jena/riot/tokens/Token.java |  10 +-
 .../apache/jena/riot/writer/TurtleShell.java    |   5 +-
 .../riot/writer/WriterStreamRDFBatched.java     |   6 +-
 .../jena/riot/writer/WriterStreamRDFBlocks.java |   8 +-
 .../apache/jena/sparql/algebra/op/OpAssign.java |   5 +-
 .../apache/jena/sparql/algebra/op/OpExtend.java |   5 +-
 .../apache/jena/sparql/algebra/op/OpGroup.java  |   6 +-
 .../apache/jena/sparql/algebra/op/OpLabel.java  |   6 +-
 .../jena/sparql/algebra/op/OpProject.java       |   4 +-
 .../optimize/TransformFilterPlacement.java      |   3 +-
 .../jena/sparql/core/DatasetChangesBatched.java |   8 +-
 .../jena/sparql/core/DatasetGraphBase.java      |  12 +-
 .../sparql/core/DatasetGraphCollection.java     |   4 +-
 .../jena/sparql/core/DatasetGraphQuad.java      |  13 +-
 .../org/apache/jena/sparql/core/Prologue.java   |   7 +-
 .../java/org/apache/jena/sparql/core/Quad.java  |   7 +-
 .../apache/jena/sparql/core/QueryCompare.java   |   4 +-
 .../apache/jena/sparql/core/VarExprList.java    |   4 +-
 .../org/apache/jena/sparql/engine/Rename.java   |  19 +-
 .../jena/sparql/engine/binding/BindingBase.java |   4 +-
 .../sparql/engine/iterator/QueryIterGroup.java  |  22 +-
 .../sparql/engine/iterator/QueryIterTopN.java   |   8 +-
 .../ReorderTransformationSubstitution.java      |  12 +-
 .../org/apache/jena/sparql/expr/E_Exists.java   |   2 +-
 .../apache/jena/sparql/expr/E_NotExists.java    |   2 +-
 .../java/org/apache/jena/sparql/expr/Expr.java  |   3 +-
 .../apache/jena/sparql/expr/ExprAggregator.java |  10 +-
 .../apache/jena/sparql/expr/ExprFunction.java   |   4 +-
 .../apache/jena/sparql/expr/ExprFunction0.java  |   2 +-
 .../apache/jena/sparql/expr/ExprFunction1.java  |   2 +-
 .../apache/jena/sparql/expr/ExprFunction2.java  |   2 +-
 .../apache/jena/sparql/expr/ExprFunction3.java  |   2 +-
 .../apache/jena/sparql/expr/ExprFunctionN.java  |   3 +-
 .../org/apache/jena/sparql/expr/ExprList.java   |   3 +-
 .../org/apache/jena/sparql/expr/ExprNode.java   |   3 +-
 .../org/apache/jena/sparql/expr/ExprVar.java    |   4 +-
 .../org/apache/jena/sparql/expr/NodeValue.java  |   5 +-
 .../jena/sparql/expr/aggregate/AggCustom.java   |   6 +-
 .../sparql/expr/aggregate/AggGroupConcat.java   |   5 +-
 .../expr/aggregate/AggGroupConcatDistinct.java  |   5 +-
 .../jena/sparql/expr/aggregate/AggMax.java      |   5 +-
 .../sparql/expr/aggregate/AggMaxDistinct.java   |   5 +-
 .../jena/sparql/expr/aggregate/AggMin.java      |   5 +-
 .../sparql/expr/aggregate/AggMinDistinct.java   |   5 +-
 .../jena/sparql/expr/aggregate/AggSample.java   |   5 +-
 .../jena/sparql/expr/aggregate/Aggregator.java  |   2 +-
 .../sparql/expr/aggregate/AggregatorBase.java   |   3 +-
 .../apache/jena/sparql/graph/NodeTransform.java |   8 +-
 .../jena/sparql/graph/NodeTransformLib.java     |  27 ++-
 .../jena/sparql/graph/NodeTransformOp.java      |  11 +-
 .../modify/NodeTransformBNodesToVariables.java  |   5 +-
 .../apache/jena/sparql/modify/TemplateLib.java  |  31 ++-
 .../jena/sparql/modify/UpdateEngineWorker.java  |   5 +-
 .../jena/sparql/modify/request/UpdateLoad.java  |   5 +-
 .../org/apache/jena/sparql/path/PathLib.java    |   6 +-
 .../jena/sparql/path/eval/PathEngine.java       |  25 +--
 .../jena/sparql/path/eval/PathEvaluator.java    |   6 +-
 .../jena/sparql/pfunction/library/strSplit.java |  12 +-
 .../apache/jena/sparql/resultset/CSVInput.java  |   6 +-
 .../jena/sparql/resultset/ResultSetCompare.java |  25 +--
 .../org/apache/jena/sparql/util/Context.java    |   2 +-
 .../org/apache/jena/sparql/util/ModelUtils.java |  19 +-
 .../org/apache/jena/sparql/util/NodeUtils.java  |   5 +-
 .../jena/sparql/util/graph/GraphList.java       |  12 +-
 .../jena/riot/process/TestNormalization.java    |   4 +-
 .../jena/riot/thrift/TestResultSetThrift.java   |  11 -
 .../jena/riot/thrift/TestStreamRDFThrift.java   |  13 +-
 .../org/apache/jena/atlas/iterator/Action.java  |  10 +-
 .../apache/jena/atlas/iterator/ActionCount.java |   6 +-
 .../jena/atlas/iterator/ActionNothing.java      |  26 ---
 .../org/apache/jena/atlas/iterator/Filter.java  |   9 +-
 .../atlas/iterator/FilterDistinctAdjacent.java  |  11 +-
 .../jena/atlas/iterator/FilterOutNulls.java     |  32 ---
 .../apache/jena/atlas/iterator/FilterStack.java |  16 +-
 .../jena/atlas/iterator/FilterUnique.java       |  12 +-
 .../org/apache/jena/atlas/iterator/Iter.java    | 211 +++++-------------
 .../jena/atlas/iterator/IteratorArray.java      |   7 +
 .../apache/jena/atlas/iterator/MapUtils.java    |  36 ---
 .../apache/jena/atlas/iterator/Transform.java   |   9 +-
 .../apache/jena/atlas/lib/ActionKeyValue.java   |   9 +-
 .../org/apache/jena/atlas/lib/Allocator.java    |  28 ---
 .../java/org/apache/jena/atlas/lib/Cache.java   |   3 +-
 .../org/apache/jena/atlas/lib/CacheSet.java     |   4 +-
 .../org/apache/jena/atlas/lib/Callback.java     |   5 +-
 .../java/org/apache/jena/atlas/lib/Cell.java    |  99 ---------
 .../apache/jena/atlas/lib/CollectionUtils.java  |  27 +--
 .../java/org/apache/jena/atlas/lib/FileOps.java |  18 +-
 .../java/org/apache/jena/atlas/lib/Lib.java     |  14 +-
 .../org/apache/jena/atlas/lib/ListUtils.java    |  66 ++----
 .../org/apache/jena/atlas/lib/MapUtils.java     |  45 ----
 .../org/apache/jena/atlas/lib/MultiMap.java     | 146 -------------
 .../apache/jena/atlas/lib/MultiMapToList.java   |  43 ----
 .../apache/jena/atlas/lib/MultiMapToSet.java    |  47 ----
 .../org/apache/jena/atlas/lib/MultiSet.java     | 218 -------------------
 .../java/org/apache/jena/atlas/lib/Pair.java    |   4 +-
 .../java/org/apache/jena/atlas/lib/Problem.java |  25 ---
 .../apache/jena/atlas/lib/PropertyUtils.java    |   4 +-
 .../org/apache/jena/atlas/lib/SetUtils.java     |  26 +--
 .../org/apache/jena/atlas/lib/StrUtils.java     |  41 +---
 .../java/org/apache/jena/atlas/lib/Tuple.java   |  28 +--
 .../org/apache/jena/atlas/lib/TupleBuilder.java |  50 -----
 .../org/apache/jena/atlas/lib/cache/Cache0.java |   4 +-
 .../org/apache/jena/atlas/lib/cache/Cache1.java |  12 +-
 .../apache/jena/atlas/lib/cache/CacheGuava.java |   9 +-
 .../jena/atlas/lib/cache/CacheSetImpl.java      |  16 +-
 .../jena/atlas/lib/cache/CacheSetSync.java      |   5 +-
 .../jena/atlas/lib/cache/CacheSetWrapper.java   |   5 +-
 .../jena/atlas/lib/cache/CacheSimple.java       |  13 +-
 .../jena/atlas/lib/cache/CacheWrapper.java      |   4 +-
 .../org/apache/jena/atlas/lib/cache/Getter.java |  25 ---
 .../java/org/apache/jena/base/Closeable.java    |  27 ---
 .../apache/jena/atlas/iterator/TestIter.java    | 134 +-----------
 .../java/org/apache/jena/atlas/lib/TS_Lib.java  |   1 -
 .../org/apache/jena/atlas/lib/TestMultiSet.java | 143 ------------
 .../impl/PropertyTableHashMapImpl.java          |  19 +-
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |   5 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   8 +-
 .../jena/fuseki/servlets/ResponseResultSet.java |  16 +-
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |  12 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   8 +-
 .../apache/jena/fuseki/server/DataService.java  |   6 +-
 .../apache/jena/fuseki/server/FusekiServer.java |   5 +-
 .../jena/fuseki/servlets/ResponseResultSet.java |  16 +-
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |  10 +-
 .../query/rewriter/SecuredFunction.java         |   3 +-
 .../org/apache/jena/sdb/compiler/QuadBlock.java |   6 +-
 .../org/apache/jena/sdb/compiler/SDB_QC.java    |  14 +-
 .../apache/jena/sdb/compiler/TransformSDB.java  |   4 +-
 .../org/apache/jena/sdb/core/ScopeEntry.java    |  28 +--
 .../org/apache/jena/sdb/core/ScopeRename.java   |  21 --
 .../sdb/core/sqlnode/GenerateSQLVisitor.java    |   9 +-
 .../org/apache/jena/sdb/print/ActionPrint.java  |   7 +-
 .../java/org/apache/jena/sdb/util/Pair.java     |   5 +-
 .../jena/sdb/test/junit/ParamAllStoreDesc.java  |  11 +-
 .../jena/sdb/test/junit/ParamAllStores.java     |  11 +-
 .../apache/jena/sdb/test/junit/StoreList.java   |  21 +-
 .../spatial/SpatialDocProducerTriples.java      |  19 --
 .../jena/tdb/base/block/BlockMgrCache.java      |   6 +-
 .../jena/tdb/base/block/BlockMgrTracker.java    |  31 +--
 .../org/apache/jena/tdb/base/file/Location.java |   4 +-
 .../org/apache/jena/tdb/base/file/MetaFile.java |   5 +-
 .../tdb/index/bplustree/BPlusTreeRewriter.java  |  10 +-
 .../java/org/apache/jena/tdb/lib/NodeLib.java   |   9 +-
 .../java/org/apache/jena/tdb/lib/TupleLib.java  |  34 +--
 .../apache/jena/tdb/solver/OpExecutorTDB1.java  |  11 +-
 .../java/org/apache/jena/tdb/solver/QC2.java    |   9 +-
 .../org/apache/jena/tdb/solver/SolverLib.java   |  52 ++---
 .../tdb/solver/StageGeneratorDirectTDB.java     |   9 +-
 .../apache/jena/tdb/solver/StageMatchTuple.java |  34 +--
 .../tdb/solver/stats/StatsCollectorBase.java    |   5 +-
 .../apache/jena/tdb/store/DatasetGraphTDB.java  |  13 +-
 .../org/apache/jena/tdb/store/GraphTDB.java     |  19 +-
 .../org/apache/jena/tdb/store/QuadTable.java    |   9 -
 .../org/apache/jena/tdb/store/TripleTable.java  |   9 -
 .../store/bulkloader2/CmdNodeTableBuilder.java  |   5 +-
 .../tdb/store/nodetable/NodeTableNative.java    |  35 +--
 .../tdb/store/tupletable/TupleIndexRecord.java  |  18 +-
 .../java/org/apache/jena/tdb/sys/FileRef.java   |   4 +-
 .../apache/jena/tdb/base/record/RecordLib.java  |   9 +-
 .../apache/jena/tdb/store/TestQuadFilter.java   |  20 +-
 .../jena/query/text/EntityDefinition.java       |   5 +-
 .../assembler/EntityDefinitionAssembler.java    |  19 +-
 178 files changed, 665 insertions(+), 2419 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/d480bd1f/jena-arq/src/main/java/org/apache/jena/riot/out/JsonLDWriter.java
----------------------------------------------------------------------


[8/8] jena git commit: Fix warnings after JENA-931

Posted by an...@apache.org.
Fix warnings after JENA-931

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

Branch: refs/heads/master
Commit: fa3bae848ab63855900627d8745246a1170eff7d
Parents: d480bd1
Author: Andy Seaborne <an...@apache.org>
Authored: Wed May 6 19:40:10 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed May 6 19:40:10 2015 +0100

----------------------------------------------------------------------
 .../apache/jena/sparql/engine/iterator/QueryIterGroup.java   | 1 -
 .../java/org/apache/jena/atlas/iterator/IteratorArray.java   | 2 +-
 .../main/java/org/apache/jena/atlas/lib/ActionKeyValue.java  | 2 +-
 .../src/main/java/org/apache/jena/atlas/lib/ListUtils.java   | 2 +-
 .../src/main/java/org/apache/jena/atlas/lib/StrUtils.java    | 8 +++-----
 .../org/apache/jena/atlas/iterator/TestIteratorArray.java    | 3 +++
 .../org/apache/jena/atlas/iterator/TestIteratorPeek.java     | 6 ++----
 .../jena/query/text/assembler/EntityDefinitionAssembler.java | 1 -
 8 files changed, 11 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
index 2b2e194..6595533 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
@@ -26,7 +26,6 @@ import java.util.List ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.iterator.IteratorDelayedInitialization ;
 import org.apache.jena.atlas.lib.Pair ;
-import org.apache.jena.ext.com.google.common.collect.ArrayListMultimap;
 import org.apache.jena.ext.com.google.common.collect.HashMultimap;
 import org.apache.jena.ext.com.google.common.collect.Multimap;
 import org.apache.jena.graph.Node ;

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
index 2c97ca7..c73a8f7 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
@@ -24,7 +24,7 @@ import java.util.NoSuchElementException ;
 
 /** Iterator over a Java base array */
 /**
- * @deprecated
+ * @deprecated 
  * Prefer {@link Arrays#asList(Object...)} with {@link Iterable#iterator()} or
  * {@link Arrays#spliterator(Object[])} or {@link Arrays#stream(Object[])}
  */

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
index 12dadab..3a51e64 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
@@ -21,7 +21,7 @@ package org.apache.jena.atlas.lib;
 import java.util.function.BiConsumer;
 
 /**
- * Prefer {@link BiConsumer<KeyType, ValueType>}.
+ * @drepecated Use {@link BiConsumer}.
  */
 @Deprecated
 public interface ActionKeyValue<KeyType, ValueType> extends BiConsumer<KeyType, ValueType>

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
index 2d1345f..470ea08 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
@@ -75,7 +75,7 @@ public class ListUtils
     /** Return a list of lists of all the elements of collection in every order
      *  Easy to run out of heap memory.
      *  
-     *  See {@link com.google.common.collect.Collections2#permutations(Collection<E>)}
+     *  See {@link org.apache.jena.ext.com.google.common.collect.Collections2#permutations}
      */  
     static public <T> List<List<T>> permute(List<T> c)
     {

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
index a61af11..b0b4721 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
@@ -18,15 +18,13 @@
 
 package org.apache.jena.atlas.lib;
 
-import static java.util.Arrays.stream;
-import static java.util.stream.Collectors.joining;
-import static java.util.stream.Collectors.toList;
+import static java.util.Arrays.stream ;
+import static java.util.stream.Collectors.joining ;
+import static java.util.stream.Collectors.toList ;
 
 import java.io.UnsupportedEncodingException ;
-import java.util.ArrayList ;
 import java.util.List ;
 import java.util.Map ;
-import java.util.stream.Collectors;
 
 
 public class StrUtils //extends StringUtils

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorArray.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorArray.java b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorArray.java
index 5108865..f538558 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorArray.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorArray.java
@@ -25,8 +25,11 @@ import org.apache.jena.atlas.iterator.IteratorArray ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.junit.Test ;
 
+// Legacy - to be removed sometime.
+@SuppressWarnings("deprecation")
 public class TestIteratorArray extends BaseTest
 {
+    
     IteratorArray<String> create(String ... a)
     {
         return IteratorArray.create(a) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorPeek.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorPeek.java b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorPeek.java
index 33f0b70..01581d6 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorPeek.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIteratorPeek.java
@@ -21,10 +21,8 @@ package org.apache.jena.atlas.iterator;
 import java.util.ArrayList ;
 import java.util.List ;
 
-import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.IteratorArray ;
-import org.apache.jena.atlas.iterator.PeekIterator ;
 import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.ext.com.google.common.collect.Iterators ;
 import org.junit.Test ;
 
 public class TestIteratorPeek extends BaseTest
@@ -61,7 +59,7 @@ public class TestIteratorPeek extends BaseTest
     
     private static PeekIterator<String> create(String...a)
     { 
-        return new PeekIterator<>(IteratorArray.create(a)) ;
+        return new PeekIterator<>(Iterators.forArray(a)) ;
     }
     
     @Test public void peek_1()

http://git-wip-us.apache.org/repos/asf/jena/blob/fa3bae84/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
index a54fc92..ca66f27 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
@@ -32,7 +32,6 @@ import org.apache.jena.atlas.lib.StrUtils ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.ext.com.google.common.collect.HashMultimap;
 import org.apache.jena.ext.com.google.common.collect.Multimap;
-import org.apache.jena.ext.com.google.common.collect.Multimaps;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.* ;
 import org.apache.jena.query.text.EntityDefinition ;


[6/8] jena git commit: Bringing back NodeTransform

Posted by an...@apache.org.
Bringing back NodeTransform


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

Branch: refs/heads/master
Commit: 0ef8184f7b8b49cd2c7a9fdf702649495e62d435
Parents: 6711901
Author: ajs6f <aj...@virginia.edu>
Authored: Tue May 5 12:50:11 2015 -0400
Committer: ajs6f <aj...@virginia.edu>
Committed: Tue May 5 12:50:11 2015 -0400

----------------------------------------------------------------------
 .../org/apache/jena/sparql/engine/Rename.java   | 19 +++++++------
 .../org/apache/jena/sparql/expr/E_Exists.java   |  6 ++---
 .../apache/jena/sparql/expr/E_NotExists.java    |  6 ++---
 .../java/org/apache/jena/sparql/expr/Expr.java  |  6 ++---
 .../apache/jena/sparql/expr/ExprAggregator.java |  5 ++--
 .../apache/jena/sparql/expr/ExprFunction0.java  |  6 ++---
 .../apache/jena/sparql/expr/ExprFunction1.java  |  6 ++---
 .../apache/jena/sparql/expr/ExprFunction2.java  |  6 ++---
 .../apache/jena/sparql/expr/ExprFunction3.java  |  6 ++---
 .../apache/jena/sparql/expr/ExprFunctionN.java  |  6 ++---
 .../org/apache/jena/sparql/expr/ExprList.java   |  6 ++---
 .../org/apache/jena/sparql/expr/ExprNode.java   |  6 ++---
 .../org/apache/jena/sparql/expr/ExprVar.java    |  5 ++--
 .../org/apache/jena/sparql/expr/NodeValue.java  |  5 ++--
 .../jena/sparql/expr/aggregate/Aggregator.java  |  5 ++--
 .../sparql/expr/aggregate/AggregatorBase.java   |  5 ++--
 .../apache/jena/sparql/graph/NodeTransform.java |  6 +----
 .../jena/sparql/graph/NodeTransformLib.java     | 28 +++++++++-----------
 .../jena/sparql/graph/NodeTransformOp.java      |  6 ++---
 .../modify/NodeTransformBNodesToVariables.java  |  5 ++--
 .../jena/sparql/modify/UpdateEngineWorker.java  |  5 ++--
 .../jena/sparql/resultset/ResultSetCompare.java | 13 ++-------
 .../org/apache/jena/sparql/util/NodeUtils.java  |  5 +++-
 .../jena/riot/thrift/TestResultSetThrift.java   | 11 --------
 .../query/rewriter/SecuredFunction.java         |  5 ++--
 25 files changed, 67 insertions(+), 121 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
index bc1d4ea..966941d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
@@ -22,14 +22,13 @@ import java.util.Collection ;
 import java.util.HashMap ;
 import java.util.Map ;
 import java.util.Set ;
-import java.util.function.Function;
-
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQConstants ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 
 /** Support for renaming all the variables in an algebra expession
@@ -49,14 +48,14 @@ public class Rename
     /** Rename one node to another */
     public static Op renameNode(Op op, Node oldName, Node newName)
     {
-    		Function<Node, Node> renamer = new RenameNode(oldName, newName) ;
+    		NodeTransform renamer = new RenameNode(oldName, newName) ;
         return NodeTransformLib.transform(renamer, op) ;
     }
 
     /** Rename one variable to another */
     public static Op renameVar(Op op, Var oldName, Var newName)
     {
-    		Function<Node, Node> renamer = new RenameNode(oldName, newName) ;
+    		NodeTransform renamer = new RenameNode(oldName, newName) ;
         return NodeTransformLib.transform(renamer, op) ;
     }
     
@@ -76,13 +75,13 @@ public class Rename
     /** Rename all variables in an expression, EXCEPT for those named as constant */ 
     public static ExprList renameVars(ExprList exprList, Set<Var> constants)
     {
-    		Function<Node, Node> renamer = new RenameAnyVars(constants, prefix) ;
+    		NodeTransform renamer = new RenameAnyVars(constants, prefix) ;
         return NodeTransformLib.transform(renamer, exprList) ;
     }
         
     public static Expr renameVars(Expr expr, Set<Var> constants)
     {
-    		Function<Node, Node> renamer = new RenameAnyVars(constants, prefix) ;
+    		NodeTransform renamer = new RenameAnyVars(constants, prefix) ;
         return NodeTransformLib.transform(renamer, expr) ;
     }
     
@@ -90,13 +89,13 @@ public class Rename
      * This assumes the op was renamed by VarRename.rename */
     public static Op reverseVarRename(Op op, boolean repeatedly)
     {
-    		Function<Node, Node> renamer = new UnrenameAnyVars(prefix, repeatedly) ;
+    		NodeTransform renamer = new UnrenameAnyVars(prefix, repeatedly) ;
         return NodeTransformLib.transform(renamer, op) ;
     }
     
     // ---- Transforms that do the renaming and unrenaming.
     
-    static class RenameNode implements Function<Node, Node>
+    static class RenameNode implements NodeTransform
     {
         private final Node oldName ;
         private final Node newName ;
@@ -116,7 +115,7 @@ public class Rename
         
     }
     
-    static class RenameAnyVars implements Function<Node, Node>
+    static class RenameAnyVars implements NodeTransform
     {
         private final Map<Var, Var> aliases = new HashMap<>() ;
         private final Collection<Var> constants ;
@@ -151,7 +150,7 @@ public class Rename
     }
 
     /** Reverse a renaming (assuming renaming was done by prefixing variable names) */
-    static class UnrenameAnyVars implements Function<Node, Node>
+    static class UnrenameAnyVars implements NodeTransform
     {
         private final String varPrefix ;
         private final boolean repeatedly ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
index 0445350..c33839e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
@@ -18,15 +18,13 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.algebra.Algebra ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Substitute ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 import org.apache.jena.sparql.sse.Tags ;
 import org.apache.jena.sparql.syntax.Element ;
@@ -58,7 +56,7 @@ public class E_Exists extends ExprFunctionOp
     }
 
     @Override
-    public Expr applyNodeTransform(Function<Node, Node> nodeTransform)
+    public Expr applyNodeTransform(NodeTransform nodeTransform)
     {
         Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ;
         return new E_Exists(getElement(), op2) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
index 250d105..e236970 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
@@ -18,15 +18,13 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.algebra.Algebra ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Substitute ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 import org.apache.jena.sparql.sse.Tags ;
 import org.apache.jena.sparql.syntax.Element ;
@@ -59,7 +57,7 @@ public class E_NotExists extends ExprFunctionOp
     }
 
     @Override
-    public Expr applyNodeTransform(Function<Node, Node> nodeTransform)
+    public Expr applyNodeTransform(NodeTransform nodeTransform)
     {
         Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ;
         return new E_NotExists(getElement(), op2) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
index 124a842..3358575 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
@@ -20,14 +20,12 @@ package org.apache.jena.sparql.expr;
 
 import java.util.Collection ;
 import java.util.Set ;
-import java.util.function.Function;
-
 import javax.xml.datatype.DatatypeConstants ;
 
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 public interface Expr
 {
@@ -64,7 +62,7 @@ public interface Expr
     /**
      * Rewrite, applying a node->node transformation
      */
-    public Expr applyNodeTransform(Function<Node, Node> transform) ;
+    public Expr applyNodeTransform(NodeTransform transform) ;
 
     /** Deep copy */
     public Expr deepCopy() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
index 24a2fa5..ed79caf 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
@@ -19,8 +19,6 @@
 package org.apache.jena.sparql.expr;
 
 import java.util.Objects;
-import java.util.function.Function;
-
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Node ;
@@ -29,6 +27,7 @@ import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.aggregate.Aggregator ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 
 /** Group aggregation functions calculated a value during grouping and
@@ -108,7 +107,7 @@ public class ExprAggregator extends ExprNode
     }
     
     @Override
-    public ExprAggregator applyNodeTransform(Function<Node, Node> transform)
+    public ExprAggregator applyNodeTransform(NodeTransform transform)
     {
         // Can't rewrite this to a non-variable.
         Node node = transform.apply(var) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
index 696393c..8175b12 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
@@ -18,11 +18,9 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 /** An expression that is constant (does not depend on evaluating a sub expression). */
 
@@ -55,7 +53,7 @@ public abstract class ExprFunction0 extends ExprFunction
     public abstract NodeValue eval(FunctionEnv env)  ;
     
     @Override
-    final public Expr applyNodeTransform(Function<Node, Node> transform)
+    final public Expr applyNodeTransform(NodeTransform transform)
     {
         // Nothing to transform. 
         return copy() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
index e55548d..8c91cb3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
@@ -18,12 +18,10 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
 import org.apache.jena.atlas.lib.Lib ;
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 /** A function that has a single argument */
  
@@ -86,7 +84,7 @@ public abstract class ExprFunction1 extends ExprFunction
     }
 
     @Override
-    final public Expr applyNodeTransform(Function<Node, Node> transform)
+    final public Expr applyNodeTransform(NodeTransform transform)
     {
         Expr e = (expr == null ? null : expr.applyNodeTransform(transform)) ;
         return copy(e) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
index 79a824f..06cb6ea 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
@@ -18,12 +18,10 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
 import org.apache.jena.atlas.lib.Lib ;
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 
 /** A function of two arguments */
@@ -97,7 +95,7 @@ public abstract class ExprFunction2 extends ExprFunction
     
 
     @Override
-    final public Expr applyNodeTransform(Function<Node, Node> transform)
+    final public Expr applyNodeTransform(NodeTransform transform)
     {
         Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ;
         Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
index f6d9a41..d003ed2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
@@ -18,12 +18,10 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
 import org.apache.jena.atlas.lib.Lib ;
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 
 /** A function of three arguments */
@@ -107,7 +105,7 @@ public abstract class ExprFunction3 extends ExprFunction
     
 
     @Override
-    final public Expr applyNodeTransform(Function<Node, Node> transform)
+    final public Expr applyNodeTransform(NodeTransform transform)
     {
         Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ;
         Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
index d2cf110..76300ad 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
@@ -20,11 +20,9 @@ package org.apache.jena.sparql.expr;
 
 import java.util.ArrayList ;
 import java.util.List ;
-import java.util.function.Function;
-
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 /** A function which takes N arguments (N may be variable e.g. regex) */
  
@@ -82,7 +80,7 @@ public abstract class ExprFunctionN extends ExprFunction
     }
 
     @Override
-    public Expr applyNodeTransform(Function<Node, Node> transform)
+    public Expr applyNodeTransform(NodeTransform transform)
     {
         ExprList newArgs = new ExprList() ;
         for ( int i = 1 ; i <= numArgs() ; i++ )

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
index d526bba..9e56851 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
@@ -19,12 +19,10 @@
 package org.apache.jena.sparql.expr;
 
 import java.util.* ;
-import java.util.function.Function;
-
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.ExecutionContext ;
 import org.apache.jena.sparql.engine.binding.Binding ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.util.Context ;
 
 public class ExprList implements Iterable<Expr>
@@ -77,7 +75,7 @@ public class ExprList implements Iterable<Expr>
     /**
      * Rewrite, applying a node->node transformation
      */
-    public ExprList applyNodeTransform(Function<Node, Node> transform) {
+    public ExprList applyNodeTransform(NodeTransform transform) {
         ExprList x = new ExprList() ;
         for ( Expr e : expressions)
             x.add(e.applyNodeTransform(transform));

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
index 87eec7f..9b8c45f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
@@ -20,14 +20,12 @@ package org.apache.jena.sparql.expr;
 
 import java.util.Collection ;
 import java.util.Set ;
-import java.util.function.Function;
-
-import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.util.ExprUtils ;
 
 
@@ -86,7 +84,7 @@ public abstract class ExprNode implements Expr
     public abstract Expr copySubstitute(Binding binding) ;
     
     @Override
-    public abstract Expr applyNodeTransform(Function<Node, Node> transform) ;
+    public abstract Expr applyNodeTransform(NodeTransform transform) ;
 
         
     // ---- Default implementations

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
index a1a589f..df07897 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
@@ -18,8 +18,6 @@
 
 package org.apache.jena.sparql.expr;
 
-import java.util.function.Function;
-
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.Query ;
@@ -27,6 +25,7 @@ import org.apache.jena.sparql.ARQInternalErrorException ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 /** An expression that is a variable in an expression. */
  
@@ -76,7 +75,7 @@ public class ExprVar extends ExprNode
     }
     
     @Override
-    public Expr applyNodeTransform(Function<Node, Node> transform)
+    public Expr applyNodeTransform(NodeTransform transform)
     {
         Node node = transform.apply(varNode) ;
         if ( Var.isVar(node))

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
index d960de1..8cff836 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
@@ -51,8 +51,6 @@ import java.util.Calendar ;
 import java.util.Iterator ;
 import java.util.Properties ;
 import java.util.ServiceLoader ;
-import java.util.function.Function;
-
 import javax.xml.datatype.DatatypeConfigurationException ;
 import javax.xml.datatype.DatatypeFactory ;
 import javax.xml.datatype.Duration ;
@@ -76,6 +74,7 @@ import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.nodevalue.* ;
 import org.apache.jena.sparql.function.FunctionEnv ;
 import org.apache.jena.sparql.graph.NodeConst ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 import org.apache.jena.sparql.util.* ;
 import org.apache.jena.vocabulary.RDF ;
@@ -468,7 +467,7 @@ public abstract class NodeValue extends ExprNode
     }
     
     @Override
-    public Expr applyNodeTransform(Function<Node, Node> transform)
+    public Expr applyNodeTransform(NodeTransform transform)
     { 
         Node n = asNode() ;
         n = transform.apply(n) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
index 553202c..a3d6a6f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
@@ -18,10 +18,9 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import java.util.function.Function;
-
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.expr.ExprList ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 
 /** An Aggregator is the processor for the whole result stream.
@@ -47,7 +46,7 @@ public interface Aggregator
     
     public ExprList getExprList() ;
     public Aggregator copy(ExprList exprs) ;
-    public Aggregator copyTransform(Function<Node, Node> transform) ;
+    public Aggregator copyTransform(NodeTransform transform) ;
     
     @Override
     public int hashCode() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
index 7fb321b..23c5ccd 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
@@ -21,8 +21,6 @@ package org.apache.jena.sparql.expr.aggregate;
 import java.util.HashMap ;
 import java.util.Locale ;
 import java.util.Map ;
-import java.util.function.Function;
-
 import org.apache.jena.atlas.io.IndentedLineBuffer ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQInternalErrorException ;
@@ -30,6 +28,7 @@ import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 import org.apache.jena.sparql.expr.NodeValue ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 import org.apache.jena.sparql.sse.writers.WriterExpr ;
 import org.apache.jena.sparql.util.ExprUtils ;
@@ -86,7 +85,7 @@ public abstract class AggregatorBase implements Aggregator
     public String key() {  return toPrefixString() ; }
     
     @Override
-    public final Aggregator copyTransform(Function<Node, Node> transform)
+    public final Aggregator copyTransform(NodeTransform transform)
     {
         ExprList e = getExprList() ;
         if ( e != null )

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
index a22da5f..90de6fe 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
@@ -23,11 +23,7 @@ import java.util.function.Function;
 import org.apache.jena.graph.Node ;
 
 /** Convert nodes to nodes - Vars may need to be translated into Vars. */
-/**
- * Prefer {@link Function<Node, Node>}.
- *
- */
-@Deprecated
+@FunctionalInterface
 public interface NodeTransform extends Function<Node, Node>
 {
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
index 34ba4fb..ce0c517 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
@@ -22,8 +22,6 @@ import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
 import java.util.Objects;
-import java.util.function.Function;
-
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -43,14 +41,14 @@ import org.apache.jena.sparql.expr.ExprList ;
 public class NodeTransformLib
 {
     /** Do a node->node conversion of an Op - return original BGP for "no change" */
-    public static Op transform(Function<Node, Node> nodeTransform, Op op)
+    public static Op transform(NodeTransform nodeTransform, Op op)
     {
         Transform opTransform = new NodeTransformOp(nodeTransform) ; 
         return Transformer.transform(opTransform, null, op) ;   // No expr transform - we do it ourselves.
     }
     
     /** Do a node->node conversion of a BGP - return original BGP for "no change" */
-    public static BasicPattern transform(Function<Node, Node> nodeTransform, BasicPattern pattern)  
+    public static BasicPattern transform(NodeTransform nodeTransform, BasicPattern pattern)  
     {
         BasicPattern bgp2 = new BasicPattern() ;
         boolean changed = false ;
@@ -67,7 +65,7 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a QuadPattern - return original QuadPattern for "no change" */
-    public static QuadPattern transform(Function<Node, Node> nodeTransform, QuadPattern pattern)  
+    public static QuadPattern transform(NodeTransform nodeTransform, QuadPattern pattern)  
     {
         QuadPattern qp2 = new QuadPattern() ;
         boolean changed = false ;
@@ -84,7 +82,7 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a Triple - return original Triple for "no change" */
-    public static Triple transform(Function<Node, Node> nodeTransform, Triple triple)  
+    public static Triple transform(NodeTransform nodeTransform, Triple triple)  
     {
         boolean change = false ;
         Node s = triple.getSubject() ;
@@ -104,7 +102,7 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a Quad - return original Quad for "no change" */
-    public static Quad transform(Function<Node, Node> nodeTransform, Quad quad)  
+    public static Quad transform(NodeTransform nodeTransform, Quad quad)  
     {
         boolean change = false ;
         Node s = quad.getSubject() ;
@@ -126,7 +124,7 @@ public class NodeTransformLib
         return new Quad(g,s,p,o) ;
     }
     
-    public static Table transform(Table table, Function<Node, Node> transform) {
+    public static Table transform(Table table, NodeTransform transform) {
         // Non-streaming rewrite 
         List<Var> vars = transformVars(transform, table.getVars()) ;
         Iterator<Binding> iter = table.rows() ; 
@@ -139,7 +137,7 @@ public class NodeTransformLib
         return new TableData(vars, newRows) ;
     }
     
-    public static Binding transform(Binding b, Function<Node, Node> transform) {
+    public static Binding transform(Binding b, NodeTransform transform) {
         BindingMap b2 = BindingFactory.create() ;
         List<Var> vars = Iter.toList(b.vars()) ;
         for ( Var v : vars ) {
@@ -152,7 +150,7 @@ public class NodeTransformLib
 
 
     /** Do a node->node conversion of a List&lt;Quad&gt; - return original List&lt;Quad&gt; for "no change" */
-    public static List<Quad> transformQuads(Function<Node, Node> nodeTransform, List<Quad> quads)
+    public static List<Quad> transformQuads(NodeTransform nodeTransform, List<Quad> quads)
     {
         List<Quad> x = new ArrayList<>() ;
         boolean changed = false ; 
@@ -169,7 +167,7 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a VarExprList - return original VarExprList for "no change" */
-    public static VarExprList transform(Function<Node, Node> nodeTransform, VarExprList varExprList)
+    public static VarExprList transform(NodeTransform nodeTransform, VarExprList varExprList)
     {
         VarExprList varExprList2 = new VarExprList() ;
         boolean changed = false ;
@@ -188,7 +186,7 @@ public class NodeTransformLib
         return varExprList2 ;
     }
 
-    public static List<Var> transformVars(Function<Node, Node> nodeTransform, List<Var> varList)
+    public static List<Var> transformVars(NodeTransform nodeTransform, List<Var> varList)
     {
         List<Var> varList2 = new ArrayList<>(varList.size()) ;
         boolean changed = false ;
@@ -204,7 +202,7 @@ public class NodeTransformLib
         return varList2 ;
     }
 
-    public static ExprList transform(Function<Node, Node> nodeTransform, ExprList exprList)
+    public static ExprList transform(NodeTransform nodeTransform, ExprList exprList)
     {
           ExprList exprList2 = new ExprList() ;
           boolean changed = false ;
@@ -219,12 +217,12 @@ public class NodeTransformLib
           return exprList2 ;
     }
 
-    public static Expr transform(Function<Node, Node> nodeTransform, Expr expr)
+    public static Expr transform(NodeTransform nodeTransform, Expr expr)
     {
         return expr.applyNodeTransform(nodeTransform) ;
     }
 
-    public static List<SortCondition> transform(Function<Node, Node> nodeTransform, List<SortCondition> conditions)
+    public static List<SortCondition> transform(NodeTransform nodeTransform, List<SortCondition> conditions)
     {
         List<SortCondition> conditions2 = new ArrayList<>() ;
         boolean same = true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
index d62d176..c6c60af 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
@@ -20,8 +20,6 @@ package org.apache.jena.sparql.graph;
 
 import java.util.ArrayList ;
 import java.util.List ;
-import java.util.function.Function;
-
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.query.SortCondition ;
@@ -51,8 +49,8 @@ class NodeTransformOp extends TransformCopy
     // Not:
     //   Conditional (no expression)
     
-    private final Function<Node, Node> transform ;
-    NodeTransformOp(Function<Node, Node> transform)
+    private final NodeTransform transform ;
+    NodeTransformOp(NodeTransform transform)
     {
         this.transform = transform ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
index 85ab116..0ae775f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
@@ -20,14 +20,13 @@ package org.apache.jena.sparql.modify;
 
 import java.util.HashMap ;
 import java.util.Map ;
-import java.util.function.Function;
-
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQConstants ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.core.VarAlloc ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
-public class NodeTransformBNodesToVariables implements Function<Node, Node>
+public class NodeTransformBNodesToVariables implements NodeTransform
 {
     private VarAlloc varAlloc = new VarAlloc(ARQConstants.allocVarBNodeToVar) ;
     private Map<Node, Var> mapping ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
index e97a796..46b2ef9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
@@ -22,8 +22,6 @@ import static org.apache.jena.sparql.modify.TemplateLib.template ;
 
 import java.util.Iterator ;
 import java.util.List ;
-import java.util.function.Function;
-
 import org.apache.jena.atlas.data.BagFactory ;
 import org.apache.jena.atlas.data.DataBag ;
 import org.apache.jena.atlas.data.ThresholdPolicy ;
@@ -51,6 +49,7 @@ import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.engine.binding.BindingRoot ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 import org.apache.jena.sparql.graph.GraphOps ;
+import org.apache.jena.sparql.graph.NodeTransform;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 import org.apache.jena.sparql.modify.request.* ;
 import org.apache.jena.sparql.syntax.Element ;
@@ -474,7 +473,7 @@ public class UpdateEngineWorker implements UpdateVisitor
     
     protected static List<Quad> unused_convertBNodesToVariables(List<Quad> quads)
     {
-    		Function<Node, Node> bnodesToVariables = new NodeTransformBNodesToVariables() ;
+    		NodeTransform bnodesToVariables = new NodeTransformBNodesToVariables() ;
         return NodeTransformLib.transformQuads(bnodesToVariables, quads) ;
     }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
index d0dfa27..34e793a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
@@ -174,9 +174,7 @@ public class ResultSetCompare
         if ( ! compareHeader(rs1, rs2) ) return false ;
         return equivalentByOrder(convert(rs1) , convert(rs2), new BNodeIso(NodeUtils.sameTerm)) ;
     }
-    
-    private static EqualityTest nodeExactTest = new EqualityTestExact() ;
-    
+
     /** compare two result sets for exact equality equivalence.
      * Exact equalitymeans:
      * Each row in rs1 matches the same index row in rs2.
@@ -192,7 +190,7 @@ public class ResultSetCompare
     {
         if ( ! compareHeader(rs1, rs2) ) return false ;
 
-        return equivalentByOrder(convert(rs1) , convert(rs2), nodeExactTest) ;
+        return equivalentByOrder(convert(rs1) , convert(rs2), new EqualityTest(){}) ;
     }
 
     /** Compare two result sets for bNode isomorphism equivalence.
@@ -329,11 +327,4 @@ public class ResultSetCompare
             return false ;
         }
     }
-
-    private static class EqualityTestExact implements EqualityTest {
-        @Override
-        public boolean equal(Node n1, Node n2) {
-            return Objects.equals(n1, n2) ;
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
index b2a124a..09a4467 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.util;
 import java.util.Collection ;
 import java.util.HashSet ;
 import java.util.Iterator ;
+import java.util.Objects;
 import java.util.Set ;
 
 import org.apache.jena.atlas.lib.StrUtils ;
@@ -44,7 +45,9 @@ import org.apache.jena.util.iterator.WrappedIterator ;
 public class NodeUtils
 {
     public interface EqualityTest {
-        boolean equal(Node n1, Node n2) ;
+        default boolean equal(Node n1, Node n2) {
+			return Objects.equals(n1, n2) ;
+		}
     }
 
     /** IRI to Node */ 

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java
index 1d4874a..72e77a2 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java
@@ -26,7 +26,6 @@ import java.io.InputStream ;
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.atlas.lib.StrUtils ;
-import org.apache.jena.graph.Node ;
 import org.apache.jena.query.ResultSet ;
 import org.apache.jena.query.ResultSetFactory ;
 import org.apache.jena.query.ResultSetRewindable ;
@@ -35,7 +34,6 @@ import org.apache.jena.sparql.resultset.ResultSetCompare ;
 import org.apache.jena.sparql.sse.Item ;
 import org.apache.jena.sparql.sse.SSE ;
 import org.apache.jena.sparql.sse.builders.BuilderResultSet ;
-import org.apache.jena.sparql.util.NodeUtils.EqualityTest ;
 import org.junit.Test ;
 
 public class TestResultSetThrift extends BaseTest {
@@ -64,15 +62,6 @@ public class TestResultSetThrift extends BaseTest {
          , ")"
          ) ;
 
-    
-    static class EqualityTestExact implements EqualityTest {
-        @Override
-        public boolean equal(Node n1, Node n2) {
-            return n1.equals(n2) ;
-        }
-    }
-    private static EqualityTest exactTest = new EqualityTestExact() ;
-    
     @Test public void resultSet_01() { test(rs0) ; }
     
     @Test public void resultSet_02() { 

http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
index 6f262a5..6690d62 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
@@ -18,8 +18,6 @@
 package org.apache.jena.permissions.query.rewriter;
 
 import java.util.List;
-import java.util.function.Function;
-
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.permissions.SecurityEvaluator;
@@ -31,6 +29,7 @@ import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.* ;
 import org.apache.jena.sparql.function.FunctionEnv ;
+import org.apache.jena.sparql.graph.NodeTransform;
 
 public class SecuredFunction extends ExprFunctionN
 {
@@ -103,7 +102,7 @@ public class SecuredFunction extends ExprFunctionN
 	}
 
 	@Override
-	public Expr applyNodeTransform( Function<Node, Node> transform )
+	public Expr applyNodeTransform( NodeTransform transform )
 	{
 		return this;
 	}


[4/8] jena git commit: Further simplification in jena-base

Posted by an...@apache.org.
Further simplification in jena-base


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

Branch: refs/heads/master
Commit: a664cb6cf9f98a20bee3d37f7df869cfb06950bd
Parents: 6b47534
Author: ajs6f <aj...@virginia.edu>
Authored: Mon May 4 15:15:23 2015 -0400
Committer: ajs6f <aj...@virginia.edu>
Committed: Mon May 4 19:49:52 2015 -0400

----------------------------------------------------------------------
 .../sparql/engine/iterator/QueryIterGroup.java  |  22 +-
 .../sparql/engine/iterator/QueryIterTopN.java   |   8 +-
 .../org/apache/jena/sparql/util/Context.java    |   2 +-
 .../org/apache/jena/atlas/iterator/Iter.java    |  22 +-
 .../jena/atlas/iterator/IteratorArray.java      |   3 +-
 .../org/apache/jena/atlas/lib/Allocator.java    |  28 ---
 .../org/apache/jena/atlas/lib/Callback.java     |   5 +-
 .../java/org/apache/jena/atlas/lib/Cell.java    |  99 ---------
 .../apache/jena/atlas/lib/CollectionUtils.java  |   9 +-
 .../java/org/apache/jena/atlas/lib/FileOps.java |  18 +-
 .../org/apache/jena/atlas/lib/ListUtils.java    |  65 ++----
 .../org/apache/jena/atlas/lib/MultiMap.java     | 146 -------------
 .../apache/jena/atlas/lib/MultiMapToList.java   |  43 ----
 .../apache/jena/atlas/lib/MultiMapToSet.java    |  47 ----
 .../org/apache/jena/atlas/lib/MultiSet.java     | 218 -------------------
 .../apache/jena/atlas/lib/PropertyUtils.java    |   4 +-
 .../org/apache/jena/atlas/lib/StrUtils.java     |  41 +---
 .../java/org/apache/jena/atlas/lib/Tuple.java   |   8 +-
 .../org/apache/jena/atlas/lib/TupleBuilder.java |  50 -----
 .../org/apache/jena/atlas/lib/cache/Getter.java |  25 ---
 .../java/org/apache/jena/atlas/lib/TS_Lib.java  |   1 -
 .../org/apache/jena/atlas/lib/TestMultiSet.java | 143 ------------
 .../impl/PropertyTableHashMapImpl.java          |  19 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   8 +-
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   4 +-
 .../java/org/apache/jena/fuseki/FusekiLib.java  |   8 +-
 .../apache/jena/fuseki/server/DataService.java  |   6 +-
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |   2 +-
 .../jena/tdb/base/block/BlockMgrTracker.java    |  31 +--
 .../jena/query/text/EntityDefinition.java       |   5 +-
 .../assembler/EntityDefinitionAssembler.java    |  19 +-
 31 files changed, 112 insertions(+), 997 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
index e483c58..2b2e194 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
@@ -25,8 +25,10 @@ import java.util.List ;
 
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.iterator.IteratorDelayedInitialization ;
-import org.apache.jena.atlas.lib.MultiMap ;
 import org.apache.jena.atlas.lib.Pair ;
+import org.apache.jena.ext.com.google.common.collect.ArrayListMultimap;
+import org.apache.jena.ext.com.google.common.collect.HashMultimap;
+import org.apache.jena.ext.com.google.common.collect.Multimap;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.core.VarExprList ;
@@ -77,12 +79,12 @@ public class QueryIterGroup extends QueryIterPlainWrapper
             @Override
             protected Iterator<Binding> initializeIterator() {
 
-                boolean noAggregators =  ( aggregators == null || aggregators.size() == 0 ) ;
+                boolean noAggregators =  ( aggregators == null || aggregators.isEmpty() ) ;
                 
-                // Phase 1 : assign bindings to buckets by key and pump through the aggregrators.
-                MultiMap<Binding, Pair<Var, Accumulator>> accumulators = MultiMap.createMapList() ;
+                // Phase 1 : assign bindings to buckets by key and pump through the aggregators.
+                Multimap<Binding, Pair<Var, Accumulator>> accumulators = HashMultimap.create() ;
 
-                for ( ; iter.hasNext() ; )
+                while ( iter.hasNext() )
                 {
                     Binding b = iter.nextBinding() ;
                     Binding key = genKey(groupVarExpr, b, execCxt) ;
@@ -94,9 +96,8 @@ public class QueryIterGroup extends QueryIterPlainWrapper
                         continue ;
                     }
 
-                    Collection<Pair<Var, Accumulator>> accs = accumulators.get(key) ;
                     // Create if does not exist.
-                    if ( accs == null )
+                    if ( !accumulators.containsKey(key) )
                     {
                         for ( ExprAggregator agg : aggregators )
                         {
@@ -104,11 +105,10 @@ public class QueryIterGroup extends QueryIterPlainWrapper
                             Var v = agg.getVar() ;
                             accumulators.put(key, Pair.create(v, x)) ;
                         }
-                        accs = accumulators.get(key) ;
                     }
 
                     // Do the per-accumulator calculation.
-                    for ( Pair<Var, Accumulator> pair : accs )
+                    for ( Pair<Var, Accumulator> pair : accumulators.get(key) )
                         pair.getRight().accumulate(b, execCxt) ;
                 }
 
@@ -153,11 +153,11 @@ public class QueryIterGroup extends QueryIterPlainWrapper
                 
                 if ( noAggregators )
                     // We used placeholder so there are always the key. 
-                    return accumulators.keys().iterator() ;
+                    return accumulators.keySet().iterator() ;
                 
                 List<Binding> results = new ArrayList<>() ;
 
-                for ( Binding k : accumulators.keys() )
+                for ( Binding k : accumulators.keySet() )
                 {
                     Collection<Pair<Var, Accumulator>> accs = accumulators.get(k) ;
                     BindingMap b = BindingFactory.create(k) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterTopN.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterTopN.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterTopN.java
index 266fd1a..f5a39a9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterTopN.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterTopN.java
@@ -18,6 +18,8 @@
 
 package org.apache.jena.sparql.engine.iterator;
 
+import static java.util.Arrays.asList;
+
 import java.util.Arrays ;
 import java.util.Comparator ;
 import java.util.Iterator ;
@@ -25,7 +27,6 @@ import java.util.List ;
 import java.util.PriorityQueue ;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.IteratorArray ;
 import org.apache.jena.atlas.iterator.IteratorDelayedInitialization ;
 import org.apache.jena.atlas.lib.ReverseComparator ;
 import org.apache.jena.query.Query ;
@@ -87,7 +88,7 @@ public class QueryIterTopN extends QueryIterPlainWrapper
         return new IteratorDelayedInitialization<Binding>() {
             @Override
             protected Iterator<Binding> initializeIterator() {
-                for (; qIter.hasNext();) {
+                while ( qIter.hasNext() ) {
                     Binding binding = qIter.next() ;
                     if ( heap.size() < limit )
                         add(binding) ;
@@ -101,8 +102,7 @@ public class QueryIterTopN extends QueryIterPlainWrapper
                 Binding[] y = heap.toArray(new Binding[]{}) ;
                 heap = null ;
                 Arrays.sort(y, comparator) ;
-                IteratorArray<Binding> iter = IteratorArray.create(y) ;
-                return iter ;
+                return asList(y).iterator() ;
             }
         } ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-arq/src/main/java/org/apache/jena/sparql/util/Context.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/Context.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/Context.java
index 9107dea..f8c8ed9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/Context.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/Context.java
@@ -273,7 +273,7 @@ public class Context
     {
         for ( Callback<Symbol> c : callbacks )
         {
-            c.proc(symbol) ;
+            c.apply(symbol) ;
         }
     }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
index fc0a534..9cf45a7 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
@@ -267,7 +267,7 @@ public class Iter<T> implements Iterator<T> {
      * stream until the first element not passing the filter)
      */
     public static <T> boolean every(Iterator<? extends T> stream, Predicate<T> filter) {
-        for (; stream.hasNext();) {
+        while ( stream.hasNext() ) {
             T item = stream.next() ;
             if ( !filter.test(item) )
                 return false ;
@@ -291,7 +291,7 @@ public class Iter<T> implements Iterator<T> {
      * the stream to first element passing the filter)
      */
     public static <T> boolean some(Iterator<? extends T> stream, Predicate<T> filter) {
-        for (; stream.hasNext();) {
+        while ( stream.hasNext() ) {
             T item = stream.next() ;
             if ( filter.test(item) )
                 return true ;
@@ -420,14 +420,14 @@ public class Iter<T> implements Iterator<T> {
 //    }
 
     public static <T> Iterator<T> removeNulls(Iterator<T> iter) {
-        return filter(iter, x -> x != null) ;
+        return filter(iter, Objects::nonNull) ;
     }
 
     /** Take the first N elements of an iterator - stop early if too few */
     public static <T> List<T> take(Iterator<T> iter, int N) {
         iter = new IteratorN<>(iter, N) ;
         List<T> x = new ArrayList<>(N) ;
-        for (; iter.hasNext();)
+        while ( iter.hasNext() )
             x.add(iter.next()) ;
         return x ;
     }
@@ -611,7 +611,7 @@ public class Iter<T> implements Iterator<T> {
 
     /** Send the elements of the iterator to a sink - consumes the iterator */
     public static <T> void sendToSink(Iterator<T> iter, Sink<T> sink) {
-        for (; iter.hasNext();) {
+        while ( iter.hasNext() ) {
             T thing = iter.next() ;
             sink.send(thing) ;
         }
@@ -635,11 +635,11 @@ public class Iter<T> implements Iterator<T> {
     // { return Iter.iter(Arrays.asList(objects)) ; }
 
     public static <T> Iter<T> iterSingleton(T x) {
-        return Iter.iter(SingletonIterator.create(x)) ;
+        return iter(SingletonIterator.create(x)) ;
     }
 
     public static <T> Iter<T> iter(Collection<T> collection) {
-        return Iter.iter(collection.iterator()) ;
+        return iter(collection.iterator()) ;
     }
 
     public static <T> Iter<T> iter(Iterator<T> iterator) {
@@ -667,7 +667,7 @@ public class Iter<T> implements Iterator<T> {
      * debugging
      */
     public static <T> Iterator<T> materialize(Iterator<T> iter) {
-        return Iter.toList(iter).iterator() ;
+        return toList(iter).iterator() ;
     }
 
     public static <T> Iter<T> concat(Iter<T> iter1, Iter<T> iter2) {
@@ -683,7 +683,7 @@ public class Iter<T> implements Iterator<T> {
             return iter2 ;
         if ( iter2 == null )
             return iter1 ;
-        return Iter.iter(iter1).append(Iter.iter(iter2)) ;
+        return iter(iter1).append(iter(iter2)) ;
     }
 
     public static <T> T first(Iterator<T> iter, Predicate<T> filter) {
@@ -790,7 +790,7 @@ public class Iter<T> implements Iterator<T> {
     }
 
     public Iter<T> removeNulls() {
-        return filter(x -> x != null) ;
+        return iter(removeNulls(this)) ;
     }
 
     public <R> Iter<R> map(Function<T, R> converter) {
@@ -823,7 +823,7 @@ public class Iter<T> implements Iterator<T> {
 
     /** Return an Iter that yields at most the first N items */
     public Iter<T> take(int N) {
-        return Iter.iter(take(iterator, N)) ;
+        return iter(take(iterator, N)) ;
     }
 
     /** Count the iterator (this is destructive on the iterator) */

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
index a8cb1b2..70a8f26 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
@@ -25,7 +25,8 @@ import java.util.Spliterator;
 
 /** Iterator over a Java base array */
 /**
- * Prefer {@link Arrays#spliterator(Object[])} or {@link Arrays#stream(Object[])}
+ * Prefer {@link Arrays#asList(Object...)} with {@link Iterable#iterator()} or
+ * {@link Arrays#spliterator(Object[])} or {@link Arrays#stream(Object[])}
  */
 @Deprecated
 public final class IteratorArray<T> implements Iterator<T>

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/Allocator.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Allocator.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Allocator.java
deleted file mode 100644
index 84005de..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Allocator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-public interface Allocator<T>
-{
-    /** Allocate a new T, different from others allocated */ 
-    public T create() ;
-    
-//    /** Reset the process of allocation - may cause equivalent objects to be created from before the reset */  
-//    public void reset() ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/Callback.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Callback.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Callback.java
index d2f04f9..647625a 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Callback.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Callback.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.atlas.lib;
 
-public interface Callback<T>
+import java.util.function.Function;
+
+public interface Callback<T> extends Function<T, Void>
 {
-    public void proc(T arg) ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/Cell.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Cell.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Cell.java
deleted file mode 100644
index 6910c0c..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Cell.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib ;
-
-
-/** Key-value slot, with chaining for lookup. */  
-public class Cell<K,V>
-{
-    private final Cell<K,V> previous ;
-    private final K key ;
-    private final V value ;
-
-    /** Create a slot with no key, value or parent - can be used a slot chain root */  
-    public Cell()               { this(null, null, null); }
-
-    public Cell(K key, V value) { this(key, value, null); }
-
-    private Cell(K key, V value, Cell<K, V> previous)
-    {
-        this.key = key ;
-        this.value = value ;
-        this.previous = previous ;
-    }
-
-    public Cell<K,V> extend(K key, V value)
-    {
-        return new Cell<>(key, value, this) ;
-    }
-    
-    public final V find(K k)
-    {
-        // Java, tail recursion, lack thereof.
-        Cell<K,V> slot = this ;
-
-        while (slot != null)
-        {
-            // Defend against null keys (e.g. the root of a slot chain). 
-            if ( k.equals(slot.key) )
-                return slot.value ;
-//            if ( previous == null )
-//              return null ;
-            slot = slot.previous ;
-        }
-        return null ;
-    }
-    
-      /* As it should be ... */
-//    public final V find(K k)
-//    {
-//        if ( k.equals(key) )
-//            return value ;
-//        if ( previous == null )
-//            return null ;
-//        return previous.find(k) ;
-//    }
-
-    private static final String sep = ", " ;
-    private void str(int level, StringBuilder acc)
-    {
-        if ( key == null && value == null )
-            return ;
-
-        if ( level != 0 )
-            acc.append(sep) ;
-        acc.append("(") ;
-        acc.append(key.toString()) ;
-        acc.append("->") ;
-        acc.append(value.toString()) ;
-        acc.append(")") ;
-        if ( previous != null )
-            previous.str(level+1, acc) ;
-    }
-
-    @Override
-    public String toString()
-    { 
-        StringBuilder sb = new StringBuilder() ;
-        sb.append("{ ") ;
-        str(0, sb) ;
-        sb.append(" }") ;
-        return sb.toString() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
index 759e543..9895df8 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
@@ -19,16 +19,11 @@
 package org.apache.jena.atlas.lib;
 
 import java.util.Collection ;
-import java.util.Objects;
 
 public class CollectionUtils
-{
-    static public <T> void removeNulls(Collection<T> list)
-    {	
-    		list.removeIf(Objects::isNull);
-    }
-    
+{   
     static public <T> boolean disjoint(Collection<T> c1, Collection<T> c2)
     {
 		return c1.stream().noneMatch(c2::contains);
+    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/FileOps.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/FileOps.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/FileOps.java
index 6862f4a..cf2e6ee 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/FileOps.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/FileOps.java
@@ -19,11 +19,8 @@
 package org.apache.jena.atlas.lib ;
 
 import java.io.File ;
-import java.io.FileInputStream ;
-import java.io.FileOutputStream ;
 import java.io.IOException ;
-import java.nio.channels.FileChannel ;
-
+import java.nio.file.Files;
 import org.apache.jena.atlas.AtlasException ;
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.logging.Log ;
@@ -83,9 +80,8 @@ public class FileOps {
         if ( ! d.exists() )
             return ;
         
-        for ( File f : d.listFiles() ) {
-            if ( ".".equals(f.getName()) || "..".equals(f.getName()) )
-                continue ;
+		for (File f : d.listFiles(f -> !f.getName().equals(".")
+				&& !f.getName().equals(".."))) {
             if ( f.isDirectory() )
                 clearAll(f) ;
             f.delete() ;
@@ -215,13 +211,7 @@ public class FileOps {
     /** Copy a file */
     public static void copyFile(File source, File dest) {
         try {
-            @SuppressWarnings("resource")
-            FileChannel sourceChannel = new FileInputStream(source).getChannel() ;
-            @SuppressWarnings("resource")
-            FileChannel destChannel = new FileOutputStream(dest).getChannel() ;
-            destChannel.transferFrom(sourceChannel, 0, sourceChannel.size()) ;
-            sourceChannel.close() ;
-            destChannel.close() ;
+        		Files.copy(source.toPath(), dest.toPath());
         }
         catch (IOException ex) {
             IO.exception(ex) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
index 8315236..2d1345f 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
@@ -18,13 +18,13 @@
 
 package org.apache.jena.atlas.lib;
 
+import static java.util.Arrays.stream;
+import static java.util.stream.Collectors.joining;
+import static java.util.stream.Collectors.toList;
+
 import java.util.ArrayList ;
 import java.util.List ;
-import java.util.function.Consumer;
-
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.iterator.FilterUnique ;
-import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.logging.Log ;
 
 /** Various things for lists */
@@ -35,14 +35,13 @@ public class ListUtils
     public static <T>
     List<T> unique(List<T> list)
     {
-        Iter<T> iter = Iter.iter(list.iterator()) ;
-        return iter.filter(new FilterUnique<T>()).toList() ;
+    		return list.stream().distinct().collect(toList());
     }
     
     public static
     List<Integer> asList(int... values)
     {
-        List<Integer> x = new ArrayList<>() ;
+        List<Integer> x = new ArrayList<>(values.length) ;
         for ( int v : values )
             x.add(v) ;
         return x ;
@@ -50,47 +49,17 @@ public class ListUtils
     
     public static <T> String str(T[] array)
     {
-        StringBuilder buff = new StringBuilder() ;
-        String sep = "[" ;
-
-        for ( T anArray : array )
-        {
-            buff.append( sep );
-            sep = ", ";
-            buff.append( anArray );
-        }
-        buff.append("]") ;
-        return buff.toString() ;
+        return stream(array).map(String::valueOf).collect(joining(", ", "[", "]"));
     }
     
     public static String str(int[] array)
     {
-        StringBuilder buff = new StringBuilder() ;
-        String sep = "[" ;
-
-        for ( int anArray : array )
-        {
-            buff.append( sep );
-            sep = ", ";
-            buff.append( anArray );
-        }
-        buff.append("]") ;
-        return buff.toString() ;
+    		return stream(array).mapToObj(String::valueOf).collect(joining(", ", "[", "]"));
     }
     
     public static String str(long[] array)
     {
-        StringBuilder buff = new StringBuilder() ;
-        String sep = "[" ;
-
-        for ( long anArray : array )
-        {
-            buff.append( sep );
-            sep = ", ";
-            buff.append( anArray );
-        }
-        buff.append("]") ;
-        return buff.toString() ;
+    		return stream(array).mapToObj(String::valueOf).collect(joining(", ", "[", "]"));
     }
 
     public static <T> void print(IndentedWriter out, List<T> list)
@@ -98,23 +67,15 @@ public class ListUtils
         print(out, list, " ") ;
     }
     
-    public static <T> void print(final IndentedWriter out, List<T> list, final String sep)
+    public static <T> void print(final IndentedWriter out, List<T> list, final CharSequence sep)
     {
-        Consumer<T> output = new Consumer<T>() {
-            boolean first = true ;
-            @Override
-            public void accept(T item)
-            {
-                if ( ! first ) out.print(sep) ;
-                out.print(item.toString()) ;
-                first = false ;
-            }
-        } ;
-        Iter.apply(list.iterator(), output) ;
+		out.print(list.stream().map(String::valueOf).collect(joining(sep)));
     }
     
     /** Return a list of lists of all the elements of collection in every order
      *  Easy to run out of heap memory.
+     *  
+     *  See {@link com.google.common.collect.Collections2#permutations(Collection<E>)}
      */  
     static public <T> List<List<T>> permute(List<T> c)
     {

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMap.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMap.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMap.java
deleted file mode 100644
index 2782ea6..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMap.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.* ;
-
-import org.apache.jena.atlas.iterator.IteratorConcat ;
-
-/* Map from K to collection of V */
-
-public abstract class MultiMap<K, V>
-{
-    private Map<K, Collection<V>> map = new HashMap<>() ;
-
-    protected abstract Collection<V> createCollection() ;
-    
-    public static <K, V> MultiMapToList<K, V> createMapList() { return new MultiMapToList<>() ; }
-    public static <K, V> MultiMapToSet<K, V> createMapSet() { return new MultiMapToSet<>() ; }
-    
-    protected MultiMap() { }
-    
-    protected Collection<V> getByKey(K key) { 
-        return map.get(key) ; 
-    } 
-
-    public abstract Collection<V> get(K key) ; 
-    
-    public V getOne(K key) { 
-        Collection<V> c = map.get(key) ;
-        if ( c == null || c.size() == 0 ) 
-            return null ;
-        return c.iterator().next() ;
-    }
-    
-    public void putAll(K key, @SuppressWarnings("unchecked") V ... values)
-    {
-        for ( V v : values)
-            put(key, v) ;
-    }
-    
-    public void put(K key, V value)
-    { 
-        Collection<V> x = map.get(key) ;
-        if ( x == null )
-        {
-            x = createCollection() ;
-            map.put(key, x) ;
-        }
-        x.add(value) ;
-    }
-    
-    public void remove(K key, V value)  {
-        if ( map.containsKey(key))
-            map.get(key).remove(value) ;
-    }
-    public void removeKey(K key)        { map.remove(key) ; }
-    
-    protected Collection<V> valuesForKey(K key) { return map.get(key); }
-    public abstract Collection<V> values(K key) ;
-    public abstract Collection<V> values() ;
-
-    public boolean containsKey(K key) { return map.containsKey(key) ; }
-    
-    public Set<K> keys()        { return map.keySet() ; }
-    
-    public void clear()         { map.clear() ; }
-    
-    public boolean isEmpty()    { return map.isEmpty() ; }
-
-    /** Does not materialise the contents */
-    public Iterator<V> flatten()
-    {
-        IteratorConcat<V> all = new IteratorConcat<>() ;
-        for ( K k : map.keySet() )        
-        {
-            Collection<V> x =  map.get(k) ;
-            all.add(x.iterator()) ;
-        }
-        return all ;
-    }
-    
-    @Override
-    public boolean equals(Object obj) {
-        if ( this == obj )
-            return true ;
-        if ( obj == null )
-            return false ;
-        if ( getClass() != obj.getClass() )
-            return false ;
-        MultiMap<?,?> other = (MultiMap<?,?>)obj ;
-        if ( map == null ) {
-            if ( other.map != null )
-                return false ;
-        } else if ( !map.equals(other.map) )
-            return false ;
-        return true ;
-    }
-    
-    @Override
-    public int hashCode()       { return map.hashCode()^ 0x01010101 ; }
-    
-    @Override
-    public String toString()
-    {
-        StringBuilder sb = new StringBuilder() ;
-        sb.append("{ ") ;
-        boolean firstKey = true ;
-        for ( K key : keys() )
-        {
-            if ( ! firstKey )
-                sb.append(", ") ;
-            firstKey = false ;
-            sb.append(key) ;
-            sb.append(" => [") ;
-            boolean firstValue = true ; 
-            for ( V value : values(key) )
-            {
-                if ( firstValue )
-                    sb.append(" ") ;
-                else
-                    sb.append(", ") ;
-                sb.append(value) ;
-                firstValue = false ;
-            }
-            sb.append(" ] ") ;
-        }
-        sb.append("}") ;
-        return sb.toString() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToList.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToList.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToList.java
deleted file mode 100644
index ac1ba70..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToList.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.ArrayList ;
-import java.util.Collection ;
-import java.util.List ;
-
-import org.apache.jena.atlas.iterator.Iter ;
-
-public class MultiMapToList<K,V> extends MultiMap<K,V> {
-    public static <K, V> MultiMapToList<K, V> create() { return new MultiMapToList<>() ; }
-    
-    @Override
-    protected Collection<V> createCollection() {
-        return new ArrayList<>() ;
-    }
-    
-    @Override
-    public List<V> get(K key) { return (List<V>)getByKey(key); }
-    
-    @Override
-    public List<V> values(K key) { return (List<V>)valuesForKey(key); }
-    
-    @Override
-    public List<V> values() { return Iter.toList(flatten()) ; }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToSet.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToSet.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToSet.java
deleted file mode 100644
index b89e05b..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiMapToSet.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.Collection ;
-import java.util.HashSet ;
-import java.util.Set ;
-
-import org.apache.jena.atlas.iterator.Iter ;
-
-public class MultiMapToSet<K,V> extends MultiMap<K,V> {
-    public static <K, V> MultiMapToSet<K, V> create() { return new MultiMapToSet<>() ; }
-    
-    @Override
-    protected Collection<V> createCollection()
-    {
-        return new HashSet<>() ;
-    }
-    
-    @Override
-    public Set<V> get(K key) { return (Set<V>)getByKey(key) ; }
-    
-    @Override
-    public Set<V> values(K key) { return (Set<V>)valuesForKey(key); }
-
-    @Override
-    public Set<V> values() { return Iter.toSet(flatten()) ; }
-
-
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiSet.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiSet.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiSet.java
deleted file mode 100644
index 3701042..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/MultiSet.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.ArrayList ;
-import java.util.HashMap ;
-import java.util.Iterator ;
-import java.util.List ;
-import java.util.Map ;
-import java.util.NoSuchElementException ;
-
-/** A MultiSet - also known as a Bag
- */
-
-public class MultiSet<T> implements Iterable<T>
-{
-    private Map<T,RefLong> map   = new HashMap<>() ;
-    private int multiSetSize = 0 ;
-    
-    private RefLong _get(T obj)
-    {
-        RefLong z = map.get(obj) ;
-        if ( z == null )
-        {
-            z = new RefLong(0) ;
-            map.put(obj, z) ;
-        }
-        return z ;
-    }
- 
-    /** Does it contain any elements at all? */
-    public boolean isEmpty()        { return map.isEmpty() ; }
-
-    /** Does it contain the object? */
-    public boolean contains(T obj)  { return map.containsKey(obj) ; }
-    
-    /** Yield one object per element (i.e without counts) */
-    public Iterator<T> elements()   { return map.keySet().iterator() ; }
-
-    /** Add an object */
-    public void add(T obj)          { _get(obj).inc(); multiSetSize++ ; } 
-
-    /** Add an object, with cardinality n */
-    public void add(T obj, long n)
-    { 
-        if ( n <= 0 ) return ;
-        _get(obj).add(n) ;
-        multiSetSize += n ;
-    }
-    
-    /** Remove one occurrence of the object from the multiset */
-    public void remove(T obj)
-    {
-        RefLong x = map.get(obj) ;
-        if ( x == null ) return ;
-        x.dec() ;
-        multiSetSize-- ;
-        if ( x.value() == 0 )
-            map.remove(obj) ;
-    }
-    
-    /** Remove N occurrences of the object from the multiset */
-    public void remove(T obj, long n)
-    {
-        RefLong x = map.get(obj) ;
-        if ( x == null ) return ;
-        long z = x.value() ;
-        if ( z < n )
-            n = z ;
-        x.subtract(n) ;
-        multiSetSize -= n ;
-        if ( x.value() <= 0 )
-            map.remove(obj) ;
-    }    
-    
-
-    /** Remove all occurrences of the object in themultiset */
-    public void removeAll(T obj)
-    {
-        RefLong x = map.get(obj) ;
-        if ( x == null )
-            return ;
-        multiSetSize -= x.value() ;
-        map.remove(obj) ;
-    }
-
-    /* Remove everything */
-    public void clear() { map.clear() ; multiSetSize = 0 ; }
-    
-    
-    /** Get the count of the number of times the object appears in the multiset - i.e. it's cardinality.
-     * Returns zero when not present.
-     */
-    public long count(T obj)
-    {
-        if ( ! map.containsKey(obj) ) return 0 ;
-        return map.get(obj).value() ;
-    }
-    
-    public int size()
-    {
-//        int count = 0 ;
-//        for ( Map.Entry<T, RefLong> e : map.entrySet() )
-//            count += e.getValue().value() ;
-//        //return count ;
-//        if ( count != multiSetSize )
-//        {
-//            Log.warn(this, "Mismatch") ;
-//            return count ; 
-//        }
-
-        return multiSetSize ;
-    }
-    
-    private Iterator<T> iterator1()
-    {
-        // CRUDE
-        List<T> expanded = new ArrayList<>() ;
-        for ( Map.Entry<T, RefLong> e : map.entrySet() )
-        {
-            for ( int i = 0 ; i < e.getValue().value() ; i++ )
-                expanded.add(e.getKey()) ;
-        }
-        
-        return expanded.iterator() ;
-    }
-    
-    @Override
-    public Iterator<T> iterator()
-    {
-        return new Iterator<T>() {
-            
-            Iterator<T> keys = map.keySet().iterator() ;
-            T key = null ;
-            long keyCount = 0 ;
-            T slot = null ;
-            
-            @Override
-            public boolean hasNext()
-            {
-                if ( slot != null )
-                    return true ;
-                
-                if ( keys == null ) 
-                    return false ;
-                
-                if ( key != null )
-                {
-                    if ( keyCount < count(key) )
-                    {
-                        keyCount++ ;
-                        slot = key ;
-                        return true ;
-                    }
-                    // End of this key.
-                    key = null ;
-                }
-                    
-                if ( keys.hasNext() )
-                {
-                    key = keys.next() ;
-                    keyCount = 1 ;
-                    slot = key ;
-                    return true ;
-                }
-                keys = null ;
-                return false ;
-            }
-
-            @Override
-            public T next()
-            {
-                if ( ! hasNext() ) throw new NoSuchElementException() ;
-                T x = slot ;
-                slot = null ;
-                return x ;
-            }
-
-            @Override
-            public void remove()
-            { throw new UnsupportedOperationException() ; }
-        } ; 
-    }
-    
-    @Override 
-    public String toString()
-    {
-        StringBuilder sb = new StringBuilder() ;
-        sb.append("{") ;
-        String sep = "" ;
-        for ( Map.Entry<T, RefLong> e : map.entrySet() )
-        {
-            sb.append(sep) ;
-            sep = ", " ;
-            sb.append(e.getKey().toString()) ;
-            sb.append("=") ;
-            sb.append(Long.toString(e.getValue().value())) ;
-        }
-        sb.append("}") ;
-        return sb.toString() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java
index d4ac5b7..f9acfc8 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java
@@ -92,7 +92,7 @@ public class PropertyUtils {
 
     /** Test whether a property has a value. Null tests equal to not present. */
     public boolean propertyEquals(Properties properties, String key, String value) {
-        return Lib.equal(properties.getProperty(key), value) ;
+        return Objects.equals(properties.getProperty(key), value) ;
     }
 
     /** Set property if not already set. */
@@ -130,7 +130,7 @@ public class PropertyUtils {
     public void checkMetadata(Properties properties, String key, String expected) {
         String value = properties.getProperty(key) ;
 
-        if ( !Lib.equal(value, value) )
+        if ( !Objects.equals(value, value) )
             inconsistent(properties, key, value, expected) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
index 9a9be76..a61af11 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
@@ -18,10 +18,15 @@
 
 package org.apache.jena.atlas.lib;
 
+import static java.util.Arrays.stream;
+import static java.util.stream.Collectors.joining;
+import static java.util.stream.Collectors.toList;
+
 import java.io.UnsupportedEncodingException ;
 import java.util.ArrayList ;
 import java.util.List ;
 import java.util.Map ;
+import java.util.stream.Collectors;
 
 
 public class StrUtils //extends StringUtils
@@ -54,27 +59,12 @@ public class StrUtils //extends StringUtils
     
     private static String join(String sep, List<String> a)
     {
-        return join(sep, a.toArray(new String[0])) ;
+        return a.stream().collect(joining(sep));
     }
     
     private static String join(String sep, String...a)
-    {
-        if ( a.length == 0 )
-            return "" ;
-
-        if ( a.length == 1)
-            return a[0] ;
-
-        StringBuilder sbuff = new StringBuilder() ;
-        sbuff.append(a[0]) ;
-
-        for ( int i = 1 ; i < a.length ; i++ )
-        {
-            if ( sep != null )
-                sbuff.append(sep) ;
-            sbuff.append(a[i]) ;
-        }
-        return sbuff.toString() ;
+    {	
+    		return stream(a).collect(joining(sep));
     }
     
     public static final int CMP_GREATER  = +1 ;
@@ -127,12 +117,7 @@ public class StrUtils //extends StringUtils
     /** Split but also trim whiespace. */
     public static String[] split(String s, String splitStr)
     {
-        String[] x = s.split(splitStr) ;
-        for ( int i = 0 ; i < x.length ; i++ )
-        {
-            x[i] = x[i].trim() ;
-        }
-        return x ;
+        return stream(s.split(splitStr)).map(String::trim).toArray(String[]::new);
     }
     
     /** Does one string contain another string?
@@ -152,7 +137,7 @@ public class StrUtils //extends StringUtils
     
     public static String substitute(String str, Map<String, String>subs)
     {
-        for ( Map.Entry<String, String> e : subs.entrySet() )
+    		for ( Map.Entry<String, String> e : subs.entrySet() )
         {
             String param = e.getKey() ;
             if ( str.contains(param) ) 
@@ -182,10 +167,8 @@ public class StrUtils //extends StringUtils
     
     public static List<Character> toCharList(String str)
     {
-        List<Character> characters = new ArrayList<>(str.length()) ;
-        for ( Character ch : str.toCharArray() )
-            characters.add(ch) ;
-        return characters ;
+		return str.codePoints().mapToObj(i -> (char) i).map(Character::new)
+				.collect(toList());
     }
     
     // ==== Encoding and decoding strings based on a marker character (e.g. %)

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
index 35a97a5..f991d65 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
@@ -21,6 +21,7 @@ package org.apache.jena.atlas.lib ;
 import java.util.Arrays ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.Objects;
 import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
@@ -37,9 +38,6 @@ public class Tuple<T> implements Iterable<T> {
     /**
      * Create a tuple from an array of elements. The array is not copied and
      * should not be modified after this call.
-     * <p>
-     * There is also a {@link TupleBuilder} which does create an idendent
-     * copy, in case that style is preferrable for creating tuples.
      */
     public static <X> Tuple<X> create(X[] elements) {
         return new Tuple<>(elements) ;
@@ -90,7 +88,7 @@ public class Tuple<T> implements Iterable<T> {
 
     @Override
     public Iterator<T> iterator() {
-        return Arrays.stream(tuple).iterator() ;
+        return Arrays.asList(tuple).iterator() ;
     }
 
     /** Return a tuple with the column mapping applied */
@@ -130,7 +128,7 @@ public class Tuple<T> implements Iterable<T> {
         for ( int i = 0 ; i < tuple.length ; i++ ) {
             Object obj1 = tuple[i] ;
             Object obj2 = x.tuple[i] ;
-            if ( !Lib.equal(obj1, obj2) )
+            if ( !Objects.equals(obj1, obj2) )
                 return false ;
         }
         return true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java
deleted file mode 100644
index 278334d..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-
-import java.util.ArrayList ;
-import java.util.List ;
-
-/** Tuple builder class - tuples are immutable, this is how to create them in the builder style */
-public class TupleBuilder<T> 
-{
-    private List<T> x = new ArrayList<>() ;
-    
-    public TupleBuilder() { } 
-    
-    public TupleBuilder<T> add(T element) {
-        x.add(element) ;
-        return this ;
-    }
-    
-    public TupleBuilder<T> reset() {
-        x.clear() ;
-        return this ;
-    }
-    
-    public Tuple<T> build() { 
-        @SuppressWarnings("unchecked")
-        T[] elts = (T[])new Object[x.size()] ; 
-        // Copy contents, should not create a new array because elts
-        // is created with the right size so elts == elts2 
-        T[] elts2 = x.toArray(elts) ;
-        return new Tuple<>(elts2) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java
deleted file mode 100644
index c9f879c..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib.cache;
-
-/** A get interface */
-public interface Getter<K, V>
-{
-    public V get(K key) ; 
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/test/java/org/apache/jena/atlas/lib/TS_Lib.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/lib/TS_Lib.java b/jena-base/src/test/java/org/apache/jena/atlas/lib/TS_Lib.java
index b91d4ad..ac543c0 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/lib/TS_Lib.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/lib/TS_Lib.java
@@ -46,7 +46,6 @@ import org.junit.runners.Suite ;
     , TestReverseComparator.class
     , TestTrie.class
     , TestFilenameProcessing.class
-    , TestMultiSet.class
     , TestNumberUtils.class
     , TestDateTimeUtils.class
 } )

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-base/src/test/java/org/apache/jena/atlas/lib/TestMultiSet.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestMultiSet.java b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestMultiSet.java
deleted file mode 100644
index 477386b..0000000
--- a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestMultiSet.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.Arrays ;
-import java.util.Collections ;
-import java.util.List ;
-
-import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.junit.BaseTest ;
-import org.apache.jena.atlas.lib.MultiSet ;
-import org.junit.Test ;
-
-
-public class TestMultiSet extends BaseTest
-{
-    @Test public void multiSet_01()
-    {
-        MultiSet<String> x = new MultiSet<>() ;
-        assertTrue(x.isEmpty()) ;
-        assertEquals(0, x.count("A")) ;
-    }
-
-    @Test public void multiSet_02()
-    {
-        MultiSet<String> x = new MultiSet<>() ;
-        x.add("A") ;
-        assertFalse(x.isEmpty()) ;
-        assertEquals(1, x.count("A") ) ;
-        x.add("A") ;
-        assertEquals(2, x.count("A") ) ;
-    }
-
-    @Test public void multiSet_03()
-    {
-        MultiSet<String> x = new MultiSet<>() ;
-        x.add("A") ;
-        x.add("A") ;
-        x.remove("A") ;
-        assertEquals(1, x.count("A") ) ;
-        assertTrue(x.contains("A")) ;
-        x.remove("A") ;
-        assertEquals(0, x.count("A") ) ;
-        assertFalse(x.contains("A")) ;
-    }
-
-    @Test public void multiSet_04()
-    {
-        String[] data = { } ;
-        iterTest(data) ;
-    }
-
-
-    @Test public void multiSet_05()
-    {
-        String[] data = { "A" } ;
-        iterTest(data) ;
-    }
-
-    @Test public void multiSet_06()
-    {
-        String[] data = { "A", "B", "C" } ;
-        iterTest(data) ;
-    }
-
-
-    @Test public void multiSet_07()
-    {
-        String[] data = { "A", "B", "C", "A" } ;
-        iterTest(data) ;
-    }
-
-    @Test public void multiSet_08()
-    {
-        String[] data = {  } ;
-        MultiSet<String> x = add(data) ;
-        assertEquals(0, x.size()) ;
-    }
-    
-    @Test public void multiSet_09()
-    {
-        String[] data = { "A", "A" } ;
-        MultiSet<String> x = add(data) ;
-        assertEquals(2, x.size()) ;
-    }
-
-    @Test public void multiSet_10()
-    {
-        String[] data = { "A", "A" } ;
-        MultiSet<String> x = add(data) ;
-        x.remove("A") ;
-        assertEquals(1, x.size()) ;
-        x.remove("A") ;
-        assertEquals(0, x.size()) ;
-        x.remove("A") ;
-        assertEquals(0, x.size()) ;
-    }
-    
-    @Test public void multiSet_11()
-    {
-        String[] data = { "A", "A" } ;
-        MultiSet<String> x = add(data) ;
-        long c = Iter.count(x.elements()) ;
-        assertEquals(1, c) ;
-    }
-    
-    private static MultiSet<String> add(String[] data)
-    {
-        MultiSet<String> x = new MultiSet<>() ;
-        for ( String str : data )
-            x.add(str) ;
-        return x ;
-    }
-    
-    private static void iterTest(String[] data)
-    {
-        List<String> expected = Arrays.asList(data) ;
-        MultiSet<String> x = new MultiSet<>() ;
-        for ( String str : data )
-            x.add(str) ;
-        List<String> actual = Iter.toList(x.iterator()) ;
-        Collections.sort(expected) ;
-        Collections.sort(actual) ;
-        assertEquals(expected, actual) ;
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableHashMapImpl.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableHashMapImpl.java b/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableHashMapImpl.java
index cee257f..622b3f1 100644
--- a/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableHashMapImpl.java
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableHashMapImpl.java
@@ -19,11 +19,12 @@
 package org.apache.jena.propertytable.impl;
 
 import java.util.* ;
-import java.util.Map.Entry ;
+import java.util.Map.Entry;
 
 import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.atlas.iterator.IteratorConcat;
-import org.apache.jena.atlas.lib.MultiMapToSet ;
+import org.apache.jena.ext.com.google.common.collect.HashMultimap;
+import org.apache.jena.ext.com.google.common.collect.SetMultimap ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.propertytable.Column;
@@ -50,7 +51,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 	private Map<Node, Map<Node, Node>> valueIndex; 
 	// POS index
 	// Maps column Node to (value, subject Node) pairs
-	private Map<Node, MultiMapToSet<Node, Node>> valueReverseIndex; 
+	private Map<Node, SetMultimap<Node, Node>> valueReverseIndex; 
 
 	PropertyTableHashMapImpl() {
 		columnIndex = new HashMap<Node, Column>();
@@ -58,7 +59,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 		rowIndex = new HashMap<Node, Row>();
 		rowList = new ArrayList<Row>();
 		valueIndex = new HashMap<Node, Map<Node, Node>>();
-		valueReverseIndex = new HashMap<Node, MultiMapToSet<Node, Node>>();
+		valueReverseIndex = new HashMap<Node, SetMultimap<Node, Node>>();
 	}
 
 	@Override
@@ -120,7 +121,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 		
 		
 		Node p = column.getColumnKey();
-		final MultiMapToSet<Node, Node> valueToSubjectMap = valueReverseIndex.get(p);
+		final SetMultimap<Node, Node> valueToSubjectMap = valueReverseIndex.get(p);
 		if ( valueToSubjectMap == null ) 
 		    return NullIterator.instance() ;
 		final Set<Node> subjects = valueToSubjectMap.get(value);
@@ -171,7 +172,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 		columnIndex.put(p, new ColumnImpl(this, p));
 		columnList.add(columnIndex.get(p));
 		valueIndex.put(p, new HashMap<Node, Node>());
-		valueReverseIndex.put(p, MultiMapToSet.<Node, Node> create());
+		valueReverseIndex.put(p, HashMultimap.create());
 		return getColumn(p);
 	}
 
@@ -226,7 +227,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 		
 		
 		Node p = column.getColumnKey();
-		final MultiMapToSet<Node, Node> valueToSubjectMap = valueReverseIndex.get(p);
+		final SetMultimap<Node, Node> valueToSubjectMap = valueReverseIndex.get(p);
 		if ( valueToSubjectMap == null )
 		    return Collections.emptyList() ;
 		final Set<Node> subjects = valueToSubjectMap.get(value);
@@ -257,7 +258,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 
 	private void addToReverseMap(final Node p, final Node s, final Node oldValue, final Node value) {
 
-		final MultiMapToSet<Node, Node> valueToSubjectMap = valueReverseIndex.get(p);
+		final SetMultimap<Node, Node> valueToSubjectMap = valueReverseIndex.get(p);
 		if ( valueToSubjectMap == null )
             return ; 
 		valueToSubjectMap.remove(oldValue, s);
@@ -281,7 +282,7 @@ public class PropertyTableHashMapImpl implements PropertyTable {
 
 	private void removeFromReverseMap(final Node p, final Node s,
 			final Node value) {
-		final MultiMapToSet<Node, Node> valueTokeysMap = valueReverseIndex.get(p);
+		final SetMultimap<Node, Node> valueTokeysMap = valueReverseIndex.get(p);
 		if ( valueTokeysMap == null )
 		    return ;
 		valueTokeysMap.remove(s, value);

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiLib.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiLib.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiLib.java
index ca216f3..e06d692 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiLib.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiLib.java
@@ -23,9 +23,9 @@ import java.util.Iterator ;
 import javax.servlet.http.HttpServletRequest ;
 
 import org.apache.commons.lang.StringUtils ;
-import org.apache.jena.atlas.lib.MultiMap ;
-import org.apache.jena.atlas.lib.MultiMapToList ;
 import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.ext.com.google.common.collect.ArrayListMultimap;
+import org.apache.jena.ext.com.google.common.collect.Multimap;
 import org.apache.jena.fuseki.servlets.HttpAction ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
@@ -87,8 +87,8 @@ public class FusekiLib {
     }
 
     /** Parse the query string - do not process the body even for a form */
-    public static MultiMap<String, String> parseQueryString(HttpServletRequest req) {
-        MultiMap<String, String> map = MultiMapToList.create() ;
+    public static Multimap<String, String> parseQueryString(HttpServletRequest req) {
+        Multimap<String, String> map = ArrayListMultimap.create() ;
 
         // Don't use ServletRequest.getParameter or getParamterNames
         // as that reads form data. This code parses just the query string.

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
index 84bb858..ed106d8 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
@@ -24,6 +24,8 @@ import static org.apache.jena.fuseki.HttpNames.paramNamedGraphURI ;
 import java.util.Arrays ;
 import java.util.Collections ;
 import java.util.List ;
+import java.util.Objects;
+
 import javax.servlet.http.HttpServletRequest ;
 
 import org.apache.jena.atlas.iterator.Iter ;
@@ -74,7 +76,7 @@ public  abstract class SPARQL_Protocol extends SPARQL_ServletBase
 
     private static List<String> removeEmptyValues(List<String> list)
     {
-        return Iter.iter(list).filter(item -> item != null && item.length() != 0).toList() ;
+        return Iter.iter(list).filter(Objects::nonNull).filter(item -> !item.isEmpty()).toList() ;
     }
     
     protected static int countParamOccurences(HttpServletRequest request, String param)

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java
index 3a2a409..1138260 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java
@@ -22,9 +22,9 @@ import java.util.Iterator ;
 
 import javax.servlet.http.HttpServletRequest ;
 
-import org.apache.jena.atlas.lib.MultiMap ;
-import org.apache.jena.atlas.lib.MultiMapToList ;
 import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.ext.com.google.common.collect.ArrayListMultimap;
+import org.apache.jena.ext.com.google.common.collect.Multimap;
 import org.apache.jena.fuseki.server.SystemState ;
 import org.apache.jena.fuseki.servlets.HttpAction ;
 import org.apache.jena.graph.Graph ;
@@ -95,8 +95,8 @@ public class FusekiLib {
     }
 
     /** Parse the query string - do not process the body even for a form */
-    public static MultiMap<String, String> parseQueryString(HttpServletRequest req) {
-        MultiMap<String, String> map = MultiMapToList.create() ;
+    public static Multimap<String, String> parseQueryString(HttpServletRequest req) {
+        Multimap<String, String> map = ArrayListMultimap.create() ;
 
         // Don't use ServletRequest.getParameter or getParamterNames
         // as that reads form data. This code parses just the query string.

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
index 1037390..e4b8793 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
@@ -25,8 +25,8 @@ import java.util.* ;
 import java.util.concurrent.atomic.AtomicBoolean ;
 import java.util.concurrent.atomic.AtomicLong ;
 
-import org.apache.jena.atlas.lib.MultiMap ;
-import org.apache.jena.atlas.lib.MultiMapToList ;
+import org.apache.jena.ext.com.google.common.collect.ArrayListMultimap;
+import org.apache.jena.ext.com.google.common.collect.ListMultimap;
 import org.apache.jena.fuseki.DEF ;
 import org.apache.jena.fuseki.Fuseki ;
 import org.apache.jena.fuseki.build.DataServiceDesc ;
@@ -54,7 +54,7 @@ public class DataService { //implements DatasetMXBean {
     private final DataServiceDesc svcDesc ;
     private DatasetGraph dataset = null ;              // Only valid if active.
 
-    private MultiMapToList<OperationName, Endpoint> operations     = MultiMap.createMapList() ;
+    private ListMultimap<OperationName, Endpoint> operations     = ArrayListMultimap.create() ;
     private Map<String, Endpoint> endpoints                        = new HashMap<>() ;
     
     private volatile DatasetStatus state = UNINITIALIZED ;

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
index 2a19d03..0be8b6c 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
@@ -79,7 +79,7 @@ public  abstract class SPARQL_Protocol extends ActionSPARQL
         return Iter.iter(list).filter(acceptNonEmpty).toList() ;
     }
     
-    private static Predicate<String> acceptNonEmpty = item -> item != null && item.length() != 0;
+    private static Predicate<String> acceptNonEmpty = item -> item != null && !item.isEmpty();
     
     protected static int countParamOccurences(HttpServletRequest request, String param)
     {

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrTracker.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrTracker.java b/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrTracker.java
index 0173261..9d2f9ee 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrTracker.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/block/BlockMgrTracker.java
@@ -24,7 +24,8 @@ import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
 
-import org.apache.jena.atlas.lib.MultiSet ;
+import org.apache.jena.ext.com.google.common.collect.HashMultiset;
+import org.apache.jena.ext.com.google.common.collect.Multiset;
 import org.apache.jena.atlas.lib.Pair ;
 import org.apache.jena.tdb.TDBException ;
 import org.slf4j.Logger ;
@@ -42,9 +43,9 @@ public class BlockMgrTracker /*extends BlockMgrWrapper*/ implements BlockMgr
     // ---- State for tracking
     // Track and count block references and releases
     //   No - the page is dirty.
-    protected final MultiSet<Long> activeReadBlocks   = new MultiSet<>() ;
-    protected final MultiSet<Long> activeWriteBlocks  = new MultiSet<>() ;
-    protected final MultiSet<Long> activeIterBlocks   = new MultiSet<>() ;
+    protected final Multiset<Long> activeReadBlocks   = HashMultiset.create() ;
+    protected final Multiset<Long> activeWriteBlocks  = HashMultiset.create() ;
+    protected final Multiset<Long> activeIterBlocks   = HashMultiset.create() ;
     // Track the operations 
     protected final List<Pair<Action, Long>> actions = new ArrayList<>() ;
     protected final List<Iterator<?>> activeIterators = new ArrayList<>() ;
@@ -59,13 +60,6 @@ public class BlockMgrTracker /*extends BlockMgrWrapper*/ implements BlockMgr
         actions.clear() ;
     }
     
-    private void clearInternalIter()
-    {
-        clearInternalRW() ;
-        activeIterators.clear() ;
-        activeIterBlocks.clear() ;
-    }
-
     private int inRead = 0 ;
     private int inIterator = 0 ;
     private boolean inUpdate = false ;
@@ -79,11 +73,6 @@ public class BlockMgrTracker /*extends BlockMgrWrapper*/ implements BlockMgr
         return new BlockMgrTracker(label, blkMgr) ;
     }
 
-    private BlockMgrTracker(BlockMgr blockMgr)
-    {
-        this(LoggerFactory.getLogger(BlockMgrTracker.class), blockMgr.getLabel(), blockMgr) ;
-    }
-    
     private BlockMgrTracker(String label, BlockMgr blockMgr)
     {
         this(loggerDefault, label, blockMgr) ;
@@ -411,7 +400,7 @@ public class BlockMgrTracker /*extends BlockMgrWrapper*/ implements BlockMgr
     }
 
 
-    private void checkEmpty(String string, MultiSet<Long> blocks)
+    private void checkEmpty(String string, Multiset<Long> blocks)
     {
         if ( ! blocks.isEmpty() )
         {
@@ -440,11 +429,6 @@ public class BlockMgrTracker /*extends BlockMgrWrapper*/ implements BlockMgr
         log.warn(msg(string)) ;
     }
 
-    private void warn(Action action, String string)
-    {
-        warn(action + ": " + string) ;
-    }
-   
     private void error(String string)
     {
         log.error(msg(string)) ;
@@ -461,9 +445,6 @@ public class BlockMgrTracker /*extends BlockMgrWrapper*/ implements BlockMgr
         //debugPoint() ;
     }
 
-    // Do nothing - but use a a breakpoint point.
-    private void debugPoint() {}
-
     private void history()
     {
         info("History") ;

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-text/src/main/java/org/apache/jena/query/text/EntityDefinition.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/EntityDefinition.java b/jena-text/src/main/java/org/apache/jena/query/text/EntityDefinition.java
index 1eb97b9..2f15ffb 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/EntityDefinition.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/EntityDefinition.java
@@ -23,7 +23,8 @@ import java.util.Collections ;
 import java.util.HashMap ;
 import java.util.Map ;
 
-import org.apache.jena.atlas.lib.MultiMap ;
+import org.apache.jena.ext.com.google.common.collect.ArrayListMultimap;
+import org.apache.jena.ext.com.google.common.collect.ListMultimap;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.rdf.model.Resource ;
 import org.apache.lucene.analysis.Analyzer ;
@@ -34,7 +35,7 @@ import org.apache.lucene.analysis.Analyzer ;
 public class EntityDefinition {
     private final Map<Node, String>      predicateToField = new HashMap<>() ;
     private final Map<String, Analyzer>    fieldToAnalyzer  = new HashMap<>();
-    private final MultiMap<String, Node> fieldToPredicate = MultiMap.createMapList() ;
+    private final ListMultimap<String, Node> fieldToPredicate = ArrayListMultimap.create() ;
     private final Collection<String>     fields           = Collections.unmodifiableCollection(fieldToPredicate.keys()) ;
     // private final Collection<String> fields =
     // Collections.unmodifiableCollection(fieldToPredicate.keySet()) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/a664cb6c/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
index f677778..a54fc92 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/EntityDefinitionAssembler.java
@@ -28,9 +28,11 @@ import java.util.Map;
 import org.apache.jena.assembler.Assembler ;
 import org.apache.jena.assembler.Mode ;
 import org.apache.jena.assembler.assemblers.AssemblerBase ;
-import org.apache.jena.atlas.lib.MultiMap ;
 import org.apache.jena.atlas.lib.StrUtils ;
 import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.ext.com.google.common.collect.HashMultimap;
+import org.apache.jena.ext.com.google.common.collect.Multimap;
+import org.apache.jena.ext.com.google.common.collect.Multimaps;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.* ;
 import org.apache.jena.query.text.EntityDefinition ;
@@ -88,7 +90,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
         String graphField = qsol1.contains("graphField") ? qsol1.getLiteral("graphField").getLexicalForm() : null;
         String defaultField = qsol1.contains("dftField") ? qsol1.getLiteral("dftField").getLexicalForm() : null ;
 
-        MultiMap<String, Node> mapDefs = MultiMap.createMapList() ; 
+        Multimap<String, Node> mapDefs = HashMultimap.create() ; 
         Map<String, Analyzer> analyzerDefs = new HashMap<>();
 
         Statement listStmt = root.getProperty(TextVocab.pMap);
@@ -97,7 +99,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
             if (! n.isResource()) {
                 throw new TextIndexException("Text list node is not a resource : " + n);
             }
-            Resource listResource = (Resource) n;
+            Resource listResource = n.asResource();
             if (listResource.equals(RDF.nil)) {
                 break;  // end of the list
             }
@@ -110,7 +112,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
             if (! n.isResource()) {
                 throw new TextIndexException("Text map list entry is not a resource : " + n);
             }
-            Resource listEntry = (Resource) n;
+            Resource listEntry = n.asResource();
 
             Statement fieldStatement = listEntry.getProperty(TextVocab.pField);
             if (fieldStatement == null) {
@@ -120,7 +122,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
             if (! n.isLiteral()) {
                 throw new TextIndexException("Text map entry field property has no literal value : " + n);
             }
-            String field = ((Literal)n).getLexicalForm();
+            String field = n.asLiteral().getLexicalForm();
 
             Statement predicateStatement = listEntry.getProperty(TextVocab.pPredicate);
             if (predicateStatement == null) {
@@ -130,8 +132,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
             if (! n.isURIResource()) {
                 throw new TextIndexException("Text map entry predicate property has non resource value : " + n);
             }
-            Resource predicate = (Resource) n;
-            mapDefs.put(field, predicate.asNode()) ;
+            mapDefs.put(field, n.asNode()) ;
 
             Statement analyzerStatement = listEntry.getProperty(TextVocab.pAnalyzer);
             if (analyzerStatement != null) {
@@ -139,7 +140,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
                 if (! n.isResource()) {
                     throw new TextIndexException("Text map entry analyzer property is not a resource : " + n);
                 }
-                Resource analyzerResource = (Resource) n;
+                Resource analyzerResource = n.asResource();
                 Analyzer analyzer = (Analyzer) a.open(analyzerResource);
                 analyzerDefs.put(field, analyzer);
             }
@@ -151,7 +152,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
         // Primary field/predicate
         if ( defaultField != null ) {
             Collection<Node> c = mapDefs.get(defaultField) ;
-            if ( c == null )
+            if ( c.isEmpty() )
                 throw new TextIndexException("No definition of primary field '"+defaultField+"'") ;
         }
 


[5/8] jena git commit: Emendations in response to comments from @afs

Posted by an...@apache.org.
Emendations in response to comments from @afs


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

Branch: refs/heads/master
Commit: 6711901ab0a0d23dfb99794c8daf5dbf6d0a7e37
Parents: a664cb6
Author: ajs6f <aj...@virginia.edu>
Authored: Tue May 5 11:30:54 2015 -0400
Committer: ajs6f <aj...@virginia.edu>
Committed: Tue May 5 11:30:54 2015 -0400

----------------------------------------------------------------------
 .../org/apache/jena/atlas/json/JsonBuilder.java |  4 +--
 .../org/apache/jena/atlas/web/MediaType.java    |  4 +--
 .../org/apache/jena/query/SortCondition.java    |  5 ++--
 .../java/org/apache/jena/riot/RDFFormat.java    |  7 +++--
 .../org/apache/jena/riot/RDFFormatVariant.java  |  5 ++--
 .../org/apache/jena/riot/RDFWriterRegistry.java | 29 ++++++++++----------
 .../jena/riot/adapters/RDFReaderRIOT_Web.java   |  4 +--
 .../org/apache/jena/riot/lang/JsonLDReader.java |  4 +--
 .../jena/riot/other/BatchedStreamRDF.java       |  6 ++--
 .../jena/riot/out/SinkQuadBracedOutput.java     |  4 +--
 .../java/org/apache/jena/riot/tokens/Token.java | 10 +++----
 .../apache/jena/riot/writer/TurtleShell.java    |  5 ++--
 .../riot/writer/WriterStreamRDFBatched.java     |  6 ++--
 .../jena/riot/writer/WriterStreamRDFBlocks.java |  8 ++----
 .../apache/jena/sparql/algebra/op/OpAssign.java |  5 ++--
 .../apache/jena/sparql/algebra/op/OpExtend.java |  5 ++--
 .../apache/jena/sparql/algebra/op/OpGroup.java  |  6 ++--
 .../apache/jena/sparql/algebra/op/OpLabel.java  |  6 ++--
 .../jena/sparql/algebra/op/OpProject.java       |  4 +--
 .../optimize/TransformFilterPlacement.java      |  3 +-
 .../jena/sparql/core/DatasetChangesBatched.java |  8 +++---
 .../sparql/core/DatasetGraphCollection.java     |  4 +--
 .../org/apache/jena/sparql/core/Prologue.java   |  7 +++--
 .../java/org/apache/jena/sparql/core/Quad.java  |  7 +++--
 .../apache/jena/sparql/core/QueryCompare.java   |  4 ++-
 .../apache/jena/sparql/core/VarExprList.java    |  4 +--
 .../jena/sparql/engine/binding/BindingBase.java |  4 +--
 .../apache/jena/sparql/expr/ExprAggregator.java |  7 ++---
 .../apache/jena/sparql/expr/ExprFunction.java   |  4 +--
 .../jena/sparql/expr/aggregate/AggCustom.java   |  6 ++--
 .../sparql/expr/aggregate/AggGroupConcat.java   |  5 ++--
 .../expr/aggregate/AggGroupConcatDistinct.java  |  5 ++--
 .../jena/sparql/expr/aggregate/AggMax.java      |  5 ++--
 .../sparql/expr/aggregate/AggMaxDistinct.java   |  5 ++--
 .../jena/sparql/expr/aggregate/AggMin.java      |  5 ++--
 .../sparql/expr/aggregate/AggMinDistinct.java   |  5 ++--
 .../jena/sparql/expr/aggregate/AggSample.java   |  5 ++--
 .../jena/sparql/graph/NodeTransformLib.java     |  7 ++---
 .../jena/sparql/modify/request/UpdateLoad.java  |  5 ++--
 .../org/apache/jena/sparql/path/PathLib.java    |  4 +--
 .../jena/sparql/resultset/ResultSetCompare.java |  4 +--
 .../org/apache/jena/atlas/iterator/Action.java  |  1 +
 .../org/apache/jena/atlas/iterator/Filter.java  |  1 +
 .../atlas/iterator/FilterDistinctAdjacent.java  |  5 ++--
 .../jena/atlas/iterator/IteratorArray.java      |  2 +-
 .../apache/jena/atlas/iterator/Transform.java   |  1 +
 .../org/apache/jena/atlas/lib/Closeable.java    |  2 +-
 .../java/org/apache/jena/atlas/lib/Lib.java     |  1 +
 .../java/org/apache/jena/atlas/lib/Pair.java    |  4 ++-
 .../org/apache/jena/atlas/lib/cache/Cache1.java |  4 +--
 .../java/org/apache/jena/fuseki/FusekiCmd.java  |  5 ++--
 .../jena/fuseki/servlets/ResponseResultSet.java | 16 +++++------
 .../apache/jena/fuseki/server/FusekiServer.java |  5 ++--
 .../jena/fuseki/servlets/ResponseResultSet.java | 16 +++++------
 .../java/org/apache/jena/sdb/util/Pair.java     |  5 ++--
 .../org/apache/jena/tdb/base/file/Location.java |  4 +--
 .../org/apache/jena/tdb/base/file/MetaFile.java |  5 ++--
 .../store/bulkloader2/CmdNodeTableBuilder.java  |  5 ++--
 .../java/org/apache/jena/tdb/sys/FileRef.java   |  4 +--
 59 files changed, 175 insertions(+), 151 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/atlas/json/JsonBuilder.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/json/JsonBuilder.java b/jena-arq/src/main/java/org/apache/jena/atlas/json/JsonBuilder.java
index feb3072..50336f1 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/json/JsonBuilder.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/json/JsonBuilder.java
@@ -21,8 +21,8 @@ package org.apache.jena.atlas.json ;
 import java.math.BigDecimal ;
 import java.util.ArrayDeque ;
 import java.util.Deque ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.logging.Log ;
 
 /* Builder pattern for JSON.
@@ -90,7 +90,7 @@ public class JsonBuilder {
         if ( stack.isEmpty() )
             builtValue = value ;
         String startMarker = markers.pop(); 
-        if ( ! Lib.equal(startMarker, finishMarker) )
+        if ( ! Objects.equals(startMarker, finishMarker) )
             throw new JsonException("JSON build error : start/finish alignment error: start="+startMarker+"  finish="+finishMarker) ;
         return this ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/atlas/web/MediaType.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/web/MediaType.java b/jena-arq/src/main/java/org/apache/jena/atlas/web/MediaType.java
index b911250..3cafb3e 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/web/MediaType.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/web/MediaType.java
@@ -18,11 +18,11 @@
 
 package org.apache.jena.atlas.web ;
 
-import static org.apache.jena.atlas.lib.Lib.equal ;
 import static org.apache.jena.atlas.lib.Lib.hashCodeObject ;
 
 import java.util.LinkedHashMap ;
 import java.util.Map ;
+import java.util.Objects;
 
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
@@ -172,7 +172,7 @@ public class MediaType {
         if ( !(object instanceof MediaType) )
             return false ;
         MediaType mt = (MediaType)object ;
-        return equal(type, mt.type) && equal(subType, mt.subType) && equal(params, mt.params) ;
+        return Objects.equals(type, mt.type) && Objects.equals(subType, mt.subType) && Objects.equals(params, mt.params) ;
     }
 
     public String getParameter(String name) {

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/query/SortCondition.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/SortCondition.java b/jena-arq/src/main/java/org/apache/jena/query/SortCondition.java
index 424960e..021f70d 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/SortCondition.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/SortCondition.java
@@ -18,8 +18,9 @@
 
 package org.apache.jena.query;
 
+import java.util.Objects;
+
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.core.Var ;
@@ -125,7 +126,7 @@ public class SortCondition extends PrintSerializableBase
         if ( sc.getDirection() != this.getDirection() )
             return false ;
         
-        if ( ! Lib.equal(this.getExpression(), sc.getExpression()) )
+        if ( ! Objects.equals(this.getExpression(), sc.getExpression()) )
             return false ;
         
 //        if ( ! Utils.eq(this.getVariable(), sc.getVariable()) )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/RDFFormat.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFFormat.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFFormat.java
index ae99481..5297ca7 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFFormat.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFFormat.java
@@ -19,7 +19,8 @@
 package org.apache.jena.riot ;
 
 import static org.apache.jena.riot.RDFLanguages.THRIFT ;
-import org.apache.jena.atlas.lib.Lib ;
+
+import java.util.Objects;
 
 /** Constants for writable formats */
 public class RDFFormat {
@@ -144,9 +145,9 @@ public class RDFFormat {
         if ( getClass() != obj.getClass() )
             return false ;
         RDFFormat other = (RDFFormat)obj ;
-        if ( !Lib.equal(lang, other.lang) )
+        if ( !Objects.equals(lang, other.lang) )
             return false ;
-        if ( !Lib.equal(variant, other.variant) )
+        if ( !Objects.equals(variant, other.variant) )
             return false ;
         return true ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/RDFFormatVariant.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFFormatVariant.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFFormatVariant.java
index 2bda6f4..24ae2fa 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFFormatVariant.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFFormatVariant.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.riot ;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.util.Symbol ;
 
 /** Modifier for an RDF Format */
@@ -46,7 +47,7 @@ public class RDFFormatVariant {
         if ( getClass() != obj.getClass() )
             return false ;
         RDFFormatVariant other = (RDFFormatVariant)obj ;
-        if ( !Lib.equal(symbol, other.symbol) )
+        if ( !Objects.equals(symbol, other.symbol) )
             return false ;
         return true ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
index dd238d1..aeb37fc 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
@@ -20,7 +20,6 @@ package org.apache.jena.riot;
 
 import java.util.* ;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.riot.out.CharSpace ;
 import org.apache.jena.riot.out.JsonLDWriter ;
 import org.apache.jena.riot.system.RiotLib ;
@@ -48,23 +47,23 @@ public class RDFWriterRegistry
         {
             // Built-ins
             
-            if ( Lib.equal(RDFFormat.TURTLE_PRETTY, serialization) )
+            if ( Objects.equals(RDFFormat.TURTLE_PRETTY, serialization) )
                 return new TurtleWriter() ;
-            if ( Lib.equal(RDFFormat.TURTLE_BLOCKS, serialization) )
+            if ( Objects.equals(RDFFormat.TURTLE_BLOCKS, serialization) )
                 return new TurtleWriterBlocks() ;
-            if ( Lib.equal(RDFFormat.TURTLE_FLAT, serialization) )
+            if ( Objects.equals(RDFFormat.TURTLE_FLAT, serialization) )
                 return new TurtleWriterFlat() ;
             
-            if ( Lib.equal(RDFFormat.NTRIPLES_UTF8, serialization) )
+            if ( Objects.equals(RDFFormat.NTRIPLES_UTF8, serialization) )
                 return new NTriplesWriter() ;
-            if ( Lib.equal(RDFFormat.NTRIPLES_ASCII, serialization) )
+            if ( Objects.equals(RDFFormat.NTRIPLES_ASCII, serialization) )
                 return new NTriplesWriter(CharSpace.ASCII) ;
             
-            if ( Lib.equal(RDFFormat.RDFJSON, serialization) )
+            if ( Objects.equals(RDFFormat.RDFJSON, serialization) )
                 return new RDFJSONWriter() ;
-            if ( Lib.equal(RDFFormat.RDFXML_PRETTY, serialization) )
+            if ( Objects.equals(RDFFormat.RDFXML_PRETTY, serialization) )
                 return new RDFXMLAbbrevWriter() ;
-            if ( Lib.equal(RDFFormat.RDFXML_PLAIN, serialization) )
+            if ( Objects.equals(RDFFormat.RDFXML_PLAIN, serialization) )
                 return new RDFXMLPlainWriter() ;
             
             WriterDatasetRIOT dsw = wdsfactory.create(serialization) ;
@@ -78,17 +77,17 @@ public class RDFWriterRegistry
         @Override
         public WriterDatasetRIOT create(RDFFormat serialization)
         {
-            if ( Lib.equal(RDFFormat.TRIG_PRETTY, serialization) )
+            if ( Objects.equals(RDFFormat.TRIG_PRETTY, serialization) )
                 return new TriGWriter() ;
-            if ( Lib.equal(RDFFormat.TRIG_BLOCKS, serialization) )
+            if ( Objects.equals(RDFFormat.TRIG_BLOCKS, serialization) )
                 return new TriGWriterBlocks() ;
-            if ( Lib.equal(RDFFormat.TRIG_FLAT, serialization) )
+            if ( Objects.equals(RDFFormat.TRIG_FLAT, serialization) )
                 return new TriGWriterFlat() ;
-            if ( Lib.equal(RDFFormat.NQUADS_UTF8, serialization) )
+            if ( Objects.equals(RDFFormat.NQUADS_UTF8, serialization) )
                 return new NQuadsWriter() ;
-            if ( Lib.equal(RDFFormat.NQUADS_ASCII, serialization) )
+            if ( Objects.equals(RDFFormat.NQUADS_ASCII, serialization) )
                 return new NQuadsWriter(CharSpace.ASCII) ;
-            if ( Lib.equal(RDFFormat.RDFNULL, serialization) )
+            if ( Objects.equals(RDFFormat.RDFNULL, serialization) )
                 return NullWriter.factory.create(RDFFormat.RDFNULL) ;
             return null ;
     }} ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
index a324222..6d58bf7 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
@@ -20,8 +20,8 @@ package org.apache.jena.riot.adapters;
 
 import java.io.InputStream ;
 import java.io.Reader ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.web.TypedInputStream ;
 import org.apache.jena.rdf.model.Model ;
 import org.apache.jena.riot.Lang ;
@@ -74,7 +74,7 @@ public class RDFReaderRIOT_Web extends RDFReaderRIOT
         // Reading a URL, no hint language provided.
         // Use the URL structure as the hint.
         Lang lang = null ;
-        if ( ! Lib.equal(contentType, WebContent.contentTypeTextPlain) )
+        if ( ! Objects.equals(contentType, WebContent.contentTypeTextPlain) )
             lang = RDFLanguages.contentTypeToLang(contentType) ; 
         
         if ( lang == null )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/lang/JsonLDReader.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/JsonLDReader.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/JsonLDReader.java
index f381123..e7b758e 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/lang/JsonLDReader.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/JsonLDReader.java
@@ -23,11 +23,11 @@ import java.io.InputStream ;
 import java.io.Reader ;
 import java.util.List ;
 import java.util.Map ;
+import java.util.Objects;
 import java.util.Map.Entry;
 
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.lib.InternalErrorException ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.web.ContentType ;
 import org.apache.jena.datatypes.RDFDatatype ;
 import org.apache.jena.datatypes.xsd.XSDDatatype ;
@@ -155,7 +155,7 @@ public class JsonLDReader implements ReaderRIOT
         else if ( type.equals(LITERAL) ) {
             String lang = (String)map.get("language") ;
             String datatype = (String)map.get("datatype") ;
-            if ( Lib.equal(xsdString, datatype) )
+            if ( Objects.equals(xsdString, datatype) )
                 // In RDF 1.1, simple literals and xsd:string are the same.
                 // During migration, we prefer simple literals to xsd:strings. 
                 datatype = null ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/other/BatchedStreamRDF.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/other/BatchedStreamRDF.java b/jena-arq/src/main/java/org/apache/jena/riot/other/BatchedStreamRDF.java
index e39209c..d3eedd5 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/other/BatchedStreamRDF.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/other/BatchedStreamRDF.java
@@ -20,8 +20,8 @@ package org.apache.jena.riot.other;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.riot.system.StreamRDF ;
@@ -64,7 +64,7 @@ public class BatchedStreamRDF implements StreamRDF
 //        Node p = triple.getPredicate() ;
 //        Node o = triple.getObject() ;
 
-        if ( ! Lib.equal(s, currentSubject) )
+        if ( ! Objects.equals(s, currentSubject) )
         {
             if ( currentSubject != null )
                 finishBatchTriple(currentSubject) ;
@@ -110,7 +110,7 @@ public class BatchedStreamRDF implements StreamRDF
 //            Node p = triple.getPredicate() ;
 //            Node o = triple.getObject() ;
         
-        if ( ! Lib.equal(g, currentGraph) || ! Lib.equal(s,  currentSubject) )
+        if ( ! Objects.equals(g, currentGraph) || ! Objects.equals(s,  currentSubject) )
         {
             if ( currentSubject != null )
                 finishBatchQuad(currentGraph, currentSubject) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadBracedOutput.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadBracedOutput.java b/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadBracedOutput.java
index 0e0c8af..0841c50 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadBracedOutput.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadBracedOutput.java
@@ -19,10 +19,10 @@
 package org.apache.jena.riot.out ;
 
 import java.io.OutputStream ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.atlas.lib.Closeable ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.lib.Sink ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -83,7 +83,7 @@ public class SinkQuadBracedOutput implements Sink<Quad>, Closeable
             graphName = null ;
         }
 
-        if ( !Lib.equal(currentGraph, graphName) ) {
+        if ( !Objects.equals(currentGraph, graphName) ) {
             if ( null != currentGraph ) {
                 out.decIndent(BLOCK_INDENT) ;
                 out.println("}") ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/tokens/Token.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/tokens/Token.java b/jena-arq/src/main/java/org/apache/jena/riot/tokens/Token.java
index 4f39429..7046545 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/tokens/Token.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/tokens/Token.java
@@ -27,7 +27,6 @@ import static org.apache.jena.atlas.lib.Chars.CH_RBRACE ;
 import static org.apache.jena.atlas.lib.Chars.CH_RBRACKET ;
 import static org.apache.jena.atlas.lib.Chars.CH_RPAREN ;
 import static org.apache.jena.atlas.lib.Chars.CH_SEMICOLON ;
-import static org.apache.jena.atlas.lib.Lib.equal ;
 import static org.apache.jena.atlas.lib.Lib.hashCodeObject ;
 import static org.apache.jena.riot.tokens.TokenType.BNODE ;
 import static org.apache.jena.riot.tokens.TokenType.DECIMAL ;
@@ -41,6 +40,7 @@ import static org.apache.jena.riot.tokens.TokenType.VAR ;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.io.PeekReader ;
 import org.apache.jena.atlas.iterator.Iter ;
@@ -498,10 +498,10 @@ public final class Token
     {
         if ( ! ( other instanceof Token ) ) return false ;
         Token t = (Token)other ;
-        return  equal(tokenType, t.tokenType) &&
-                equal(tokenImage, t.tokenImage) &&
-                equal(tokenImage2, t.tokenImage2) &&
-                equal(cntrlCode, t.cntrlCode) ;
+        return  Objects.equals(tokenType, t.tokenType) &&
+        		Objects.equals(tokenImage, t.tokenImage) &&
+        		Objects.equals(tokenImage2, t.tokenImage2) &&
+        		Objects.equals(cntrlCode, t.cntrlCode) ;
     }
     
     public static Token tokenForChar(char character)

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/writer/TurtleShell.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/writer/TurtleShell.java b/jena-arq/src/main/java/org/apache/jena/riot/writer/TurtleShell.java
index e3acd10..9b1bb21 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/writer/TurtleShell.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/writer/TurtleShell.java
@@ -38,7 +38,6 @@ import java.util.* ;
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.lib.InternalErrorException ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.lib.Pair ;
 import org.apache.jena.atlas.lib.SetUtils ;
 import org.apache.jena.graph.Graph ;
@@ -299,14 +298,14 @@ public abstract class TurtleShell {
                 if ( ! isDefaultGraph(graphName) )
                     return false ;
             } else { 
-                if ( ! Lib.equal(gn, graphName) )
+                if ( ! Objects.equals(gn, graphName) )
                     // Not both same named graph
                     return false ;
             }
             // Check rest of iterator.
             for ( ; iter.hasNext() ; ) {
                 Quad q2 = iter.next() ;
-                if ( ! Lib.equal(gn, q2.getGraph()) )
+                if ( ! Objects.equals(gn, q2.getGraph()) )
                     return false ;    
             }
             return true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
index fb16cee..87573d5 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
@@ -22,9 +22,9 @@ import java.io.OutputStream ;
 import java.io.Writer ;
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.sparql.core.Quad ;
@@ -79,7 +79,7 @@ abstract class WriterStreamRDFBatched extends WriterStreamRDFBase
         Node g = quad.getGraph() ;
         Node s = quad.getSubject() ;
 
-        if ( !Lib.equal(g, currentGraph) || !Lib.equal(s, currentSubject) ) {
+        if ( !Objects.equals(g, currentGraph) || !Objects.equals(s, currentSubject) ) {
             if ( currentSubject != null ) {
                 if ( currentGraph == null )
                     finishBatchTriples(currentSubject) ;
@@ -96,7 +96,7 @@ abstract class WriterStreamRDFBatched extends WriterStreamRDFBase
     @Override
     protected final void print(Triple triple) {
         Node s = triple.getSubject() ;
-        if ( !Lib.equal(s, currentSubject) ) {
+        if ( !Objects.equals(s, currentSubject) ) {
             if ( currentSubject != null )
                 finishBatchTriples(currentSubject) ;
             startBatchTriple(s) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBlocks.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBlocks.java b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBlocks.java
index 6173bdb..64b4297 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBlocks.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBlocks.java
@@ -18,15 +18,13 @@
 
 package org.apache.jena.riot.writer;
 
-import static org.apache.jena.atlas.lib.Lib.equal ;
-
 import java.io.OutputStream ;
 import java.io.Writer ;
 import java.util.Collection ;
 import java.util.List ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.riot.other.GLib ;
@@ -85,7 +83,7 @@ public class WriterStreamRDFBlocks extends WriterStreamRDFBatched
     protected void printBatchQuads(Node g, Node s, List<Quad> quads) {
         if ( g == null )
             g = Quad.defaultGraphNodeGenerated ;
-        if ( Lib.equal(g, lastGraph) ) {
+        if ( Objects.equals(g, lastGraph) ) {
             // Same graph, different subject.
             out.println(" .") ;
             out.println() ;
@@ -195,7 +193,7 @@ public class WriterStreamRDFBlocks extends WriterStreamRDFBatched
             return ;
 
         // End of graph
-        if ( !equal(lastGraph, g) ) {
+        if ( !Objects.equals(lastGraph, g) ) {
             boolean NL_END = (dftGraph(g) ? NL_GDFT_END : NL_GNMD_END) ;
 
             if ( lastSubject != null )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpAssign.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpAssign.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpAssign.java
index 290af42..8eafaca 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpAssign.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpAssign.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.algebra.op ;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.OpVisitor ;
 import org.apache.jena.sparql.algebra.Transform ;
@@ -108,7 +109,7 @@ public class OpAssign extends OpExtendAssign {
             return false ;
         OpAssign assign = (OpAssign)other ;
 
-        if ( !Lib.equal(assignments, assign.assignments) )
+        if ( !Objects.equals(assignments, assign.assignments) )
             return false ;
         return getSubOp().equalTo(assign.getSubOp(), labelMap) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpExtend.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpExtend.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpExtend.java
index 32c4daf..88c1cbe 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpExtend.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpExtend.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.algebra.op ;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.OpVisitor ;
 import org.apache.jena.sparql.algebra.Transform ;
@@ -112,7 +113,7 @@ public class OpExtend extends OpExtendAssign {
             return false ;
         OpExtend assign = (OpExtend)other ;
 
-        if ( !Lib.equal(assignments, assign.assignments) )
+        if ( !Objects.equals(assignments, assign.assignments) )
             return false ;
         return getSubOp().equalTo(assign.getSubOp(), labelMap) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpGroup.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpGroup.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpGroup.java
index b80c0f1..73b2a9c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpGroup.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpGroup.java
@@ -19,8 +19,8 @@
 package org.apache.jena.sparql.algebra.op;
 
 import java.util.List ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.OpVisitor ;
 import org.apache.jena.sparql.algebra.Transform ;
@@ -71,9 +71,9 @@ public class OpGroup extends Op1
     {
         if ( ! (other instanceof OpGroup) ) return false ;
         OpGroup opGroup = (OpGroup)other ;
-        if ( ! Lib.equal(groupVars, opGroup.groupVars) ) 
+        if ( ! Objects.equals(groupVars, opGroup.groupVars) ) 
             return false ;
-        if ( ! Lib.equal(aggregators, opGroup.aggregators) )
+        if ( ! Objects.equals(aggregators, opGroup.aggregators) )
             return false ;
             
         return getSubOp().equalTo(opGroup.getSubOp(), labelMap) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpLabel.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpLabel.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpLabel.java
index 2d9449f..d2f4764 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpLabel.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpLabel.java
@@ -18,6 +18,8 @@
 
 package org.apache.jena.sparql.algebra.op;
 
+import java.util.Objects;
+
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.OpVisitor ;
@@ -51,10 +53,10 @@ public class OpLabel extends Op1
         if ( !(other instanceof OpLabel) )
             return false ;
         OpLabel opLabel = (OpLabel)other ;
-        if ( !Lib.equal(object, opLabel.object) )
+        if ( !Objects.equals(object, opLabel.object) )
             return false ;
 
-        return Lib.equal(getSubOp(), opLabel.getSubOp()) ;
+        return Objects.equals(getSubOp(), opLabel.getSubOp()) ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpProject.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpProject.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpProject.java
index 978a48f..8b8eda2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpProject.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpProject.java
@@ -20,8 +20,8 @@ package org.apache.jena.sparql.algebra.op;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.OpVisitor ;
 import org.apache.jena.sparql.algebra.Transform ;
@@ -63,7 +63,7 @@ public class OpProject extends OpModifier
     {
         if ( ! (other instanceof OpProject) ) return false ;
         OpProject opProject = (OpProject)other ;
-        if ( ! Lib.equal(vars, opProject.vars ) )
+        if ( ! Objects.equals(vars, opProject.vars ) )
             return false ;
         return getSubOp().equalTo(opProject.getSubOp(), labelMap) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
index 9dff996..fb90412 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.algebra.optimize ;
 import java.util.Collection ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.Objects;
 import java.util.Set ;
 
 import org.apache.jena.atlas.lib.CollectionUtils ;
@@ -68,7 +69,7 @@ public class TransformFilterPlacement extends TransformCopy {
             if ( obj == null ) return false ;
             if ( getClass() != obj.getClass() ) return false ;
             Placement other = (Placement)obj ;
-            return Lib.equal(op, other.op) && Lib.equal(unplaced, other.unplaced) ;
+            return Objects.equals(op, other.op) && Objects.equals(unplaced, other.unplaced) ;
         }
     }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesBatched.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesBatched.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesBatched.java
index af1ad1f..5e71afd 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesBatched.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesBatched.java
@@ -20,8 +20,8 @@ package org.apache.jena.sparql.core;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 
 /** Collect a stream of DatasetChanges into batches.
@@ -69,9 +69,9 @@ public abstract class DatasetChangesBatched implements DatasetChanges
                 startBatch() ;
             // Drop and through and include in the current batch.
         }
-        else if ( ! Lib.equal(currentAction, qaction) ||
-                  ! Lib.equal(currentGraph, g) ||
-                  ! Lib.equal(currentSubject, s) )
+        else if ( ! Objects.equals(currentAction, qaction) ||
+                  ! Objects.equals(currentGraph, g) ||
+                  ! Objects.equals(currentSubject, s) )
         {
             finishBatch() ;
             startBatch() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphCollection.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphCollection.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphCollection.java
index b48769b..7b66d64 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphCollection.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphCollection.java
@@ -19,10 +19,10 @@
 package org.apache.jena.sparql.core;
 
 import java.util.Iterator ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.iterator.IteratorConcat;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.shared.JenaException ;
@@ -100,7 +100,7 @@ public abstract class DatasetGraphCollection extends DatasetGraphBaseFind
     
     protected Graph fetchGraph(Node gn)
     {
-        if ( Quad.isDefaultGraph(gn) || Lib.equal(gn,Quad.tripleInQuad)) // Not preferred style
+        if ( Quad.isDefaultGraph(gn) || Objects.equals(gn,Quad.tripleInQuad)) // Not preferred style
             return getDefaultGraph() ;
         else
             return getGraph(gn) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/core/Prologue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/Prologue.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/Prologue.java
index c2a839b..ca4ff73 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/Prologue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/Prologue.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.core;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.riot.system.IRIResolver ;
 import org.apache.jena.shared.PrefixMapping ;
@@ -137,7 +138,7 @@ public class Prologue
             // Removal may involve regeneration of the reverse mapping
             // so only do if needed.   
             String oldExpansion = prefixMap.getNsPrefixURI(prefix) ;
-            if ( Lib.equal(oldExpansion, expansion) )
+            if ( Objects.equals(oldExpansion, expansion) )
                 return ;
             if ( oldExpansion != null )
                 prefixMap.removeNsPrefix(prefix) ;
@@ -199,7 +200,7 @@ public class Prologue
         // Prologue are mutable and superclasses so .equals is left as the default.
         String base1 = explicitlySetBaseURI() ? getBaseURI() : null ;
         String base2 = other.explicitlySetBaseURI() ? other.getBaseURI() : null ;        
-        if (! Lib.equal(base1,  base2) )
+        if (! Objects.equals(base1,  base2) )
             return false ;
         if ( getPrefixMapping() == null && other.getPrefixMapping() == null )
             return true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
index 8720fc6..f21266d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/Quad.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.core;
 
-import static org.apache.jena.atlas.lib.Lib.equal ;
+import java.util.Objects;
+
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.graph.Triple ;
@@ -138,7 +139,7 @@ public class Quad
     public boolean isUnionGraph()           { return isUnionGraph(graph) ; }
 
     /** Is it really a triple? */  
-    public boolean isTriple()               { return equal(graph, tripleInQuad) ; } 
+    public boolean isTriple()               { return Objects.equals(graph, tripleInQuad) ; } 
 
     /** Is this quad a legal data quad (legal data triple, IRI for graph) */   
     public boolean isLegalAsData()
@@ -190,7 +191,7 @@ public class Quad
             return false ;
         Quad quad = (Quad)other ;
         
-        if ( ! equal(graph, quad.graph) ) return false ;
+        if ( ! Objects.equals(graph, quad.graph) ) return false ;
         if ( ! subject.equals(quad.subject) ) return false ;
         if ( ! predicate.equals(quad.predicate) ) return false ;
         if ( ! object.equals(quad.object) ) return false ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java
index b64209e..a2c2ea9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java
@@ -18,6 +18,8 @@
 
 package org.apache.jena.sparql.core ;
 
+import java.util.Objects;
+
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.query.Query ;
 import org.apache.jena.query.QueryVisitor ;
@@ -171,7 +173,7 @@ public class QueryCompare implements QueryVisitor
     
     private void check(String msg, Object obj1, Object obj2)
     {
-        check(msg, Lib.equal(obj1,obj2)) ;
+        check(msg, Objects.equals(obj1,obj2)) ;
     }
     
     private void check(String msg, boolean b)

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
index a45e154..3e641f7 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
@@ -22,8 +22,8 @@ import java.util.ArrayList ;
 import java.util.HashMap ;
 import java.util.List ;
 import java.util.Map ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQInternalErrorException ;
 import org.apache.jena.sparql.engine.binding.Binding ;
@@ -141,7 +141,7 @@ public class VarExprList
         if ( ! ( other instanceof VarExprList ) )
             return false ;
         VarExprList x = (VarExprList)other ;
-        return Lib.equal(vars, x.vars) && Lib.equal(exprs, x.exprs) ;
+        return Objects.equals(vars, x.vars) && Objects.equals(exprs, x.exprs) ;
     }
     
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
index e16e786..cc024b8 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
@@ -19,9 +19,9 @@
 package org.apache.jena.sparql.engine.binding;
 
 import java.util.Iterator ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.iterator.IteratorConcat ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.util.FmtUtils ;
@@ -219,7 +219,7 @@ abstract public class BindingBase implements Binding
             Var var = iter1.next() ; 
             Node node1 = bind1.get(var) ;
             Node node2 = bind2.get(var) ;
-            if ( ! Lib.equal(node1, node2) )
+            if ( ! Objects.equals(node1, node2) )
                 return false ;
         }
         

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
index 5f1794e..24a2fa5 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
@@ -18,8 +18,7 @@
 
 package org.apache.jena.sparql.expr;
 
-import static org.apache.jena.atlas.lib.Lib.equal ;
-
+import java.util.Objects;
 import java.util.function.Function;
 
 import org.apache.jena.atlas.lib.Lib ;
@@ -80,9 +79,9 @@ public class ExprAggregator extends ExprNode
         if ( ! ( other instanceof ExprAggregator ) )
             return false ;
         ExprAggregator agg = (ExprAggregator)other ;
-        if ( ! equal(var, agg.var) )
+        if ( ! Objects.equals(var, agg.var) )
             return false ;
-        return equal(aggregator, agg.aggregator) ;
+        return Objects.equals(aggregator, agg.aggregator) ;
     }
 
     // Ensure no confusion - in an old design, an ExprAggregator was a subclass of ExprVar. 

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
index a9a8f59..f568d89 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
@@ -20,8 +20,8 @@ package org.apache.jena.sparql.expr;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 
 /** A function in the expression hierarchy.
@@ -98,7 +98,7 @@ public abstract class ExprFunction extends ExprNode
         {
             Expr a1 = this.getArg(i) ;
             Expr a2 = ex.getArg(i) ;
-            if ( ! Lib.equal(a1, a2) )
+            if ( ! Objects.equals(a1, a2) )
                 return false ;
         }
         return true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggCustom.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggCustom.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggCustom.java
index cc09301..db3c0f9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggCustom.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggCustom.java
@@ -19,9 +19,9 @@
 package org.apache.jena.sparql.expr.aggregate;
 
 import java.util.Locale ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.io.IndentedLineBuffer ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.QueryExecException ;
 import org.apache.jena.sparql.engine.binding.Binding ;
@@ -142,9 +142,9 @@ public class AggCustom extends AggregatorBase
             return false ;
         AggCustom agg = (AggCustom)other ;
         return 
-            Lib.equal(this.iri, agg.iri) &&
+        		Objects.equals(this.iri, agg.iri) &&
             this.isDistinct == agg.isDistinct &&
-            Lib.equal(this.getExprList(), agg.getExprList()) ;
+            	Objects.equals(this.getExprList(), agg.getExprList()) ;
     } 
 
     public static Accumulator createAccNull() { return new  AccCustom() ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcat.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcat.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcat.java
index 9d076d1..700b18c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcat.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcat.java
@@ -18,8 +18,9 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
+import java.util.Objects;
+
 import org.apache.jena.atlas.io.IndentedLineBuffer ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.lib.StrUtils ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.engine.binding.Binding ;
@@ -129,7 +130,7 @@ public class AggGroupConcat extends AggregatorBase
         if ( ! ( other instanceof AggGroupConcat ) )
             return false ;
         AggGroupConcat agg = (AggGroupConcat)other ;
-        return Lib.equal(agg.getSeparator(),getSeparator()) && agg.getExpr().equals(getExpr()) ;
+        return Objects.equals(agg.getSeparator(),getSeparator()) && agg.getExpr().equals(getExpr()) ;
     }
 
     // ---- Accumulator

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcatDistinct.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcatDistinct.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcatDistinct.java
index 9f99594..ad3b422 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcatDistinct.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggGroupConcatDistinct.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.Expr ;
@@ -80,7 +81,7 @@ public class AggGroupConcatDistinct extends AggregatorBase
         if ( ! ( other instanceof AggGroupConcatDistinct ) )
             return false ;
         AggGroupConcatDistinct agg = (AggGroupConcatDistinct)other ;
-        return Lib.equal(agg.getSeparator(),getSeparator()) && agg.getExpr().equals(getExpr()) ;
+        return Objects.equals(agg.getSeparator(),getSeparator()) && agg.getExpr().equals(getExpr()) ;
     }
     
     // ---- Accumulator

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMax.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMax.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMax.java
index acf31a5..539a1ab 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMax.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMax.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 
@@ -39,6 +40,6 @@ public class AggMax extends AggMaxBase
         if ( ! ( other instanceof AggMax ) )
             return false ;
         AggMax agg = (AggMax)other ;
-        return Lib.equal(exprList, agg.exprList) ;
+        return Objects.equals(exprList, agg.exprList) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMaxDistinct.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMaxDistinct.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMaxDistinct.java
index f3c576a..c994c2c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMaxDistinct.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMaxDistinct.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 
@@ -39,7 +40,7 @@ public class AggMaxDistinct extends AggMaxBase
         if ( ! ( other instanceof AggMaxDistinct ) )
             return false ;
         AggMaxDistinct agg = (AggMaxDistinct)other ;
-        return Lib.equal(exprList, agg.exprList) ;
+        return Objects.equals(exprList, agg.exprList) ;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMin.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMin.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMin.java
index f5a567f..79e634a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMin.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMin.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 
@@ -39,6 +40,6 @@ public class AggMin extends AggMinBase
         if ( ! ( other instanceof AggMin ) )
             return false ;
         AggMin agg = (AggMin)other ;
-        return Lib.equal(exprList, agg.exprList) ;
+        return Objects.equals(exprList, agg.exprList) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMinDistinct.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMinDistinct.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMinDistinct.java
index c7c388c..be774d7 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMinDistinct.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggMinDistinct.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 
@@ -38,6 +39,6 @@ public class AggMinDistinct extends AggMinBase
         if ( ! ( other instanceof AggMinDistinct ) )
             return false ;
         AggMinDistinct agg = (AggMinDistinct)other ;
-        return Lib.equal(exprList, agg.exprList) ;
+        return Objects.equals(exprList, agg.exprList) ;
     } 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggSample.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggSample.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggSample.java
index 912ff39..c153af0 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggSample.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggSample.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.Expr ;
@@ -52,7 +53,7 @@ public class AggSample extends AggregatorBase
         if ( ! ( other instanceof AggSample ) )
             return false ;
         AggSample agg = (AggSample)other ;
-        return Lib.equal(this.exprList, agg.exprList) ;
+        return Objects.equals(this.exprList, agg.exprList) ;
     } 
 
     // ---- Accumulator

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
index 94314c2..34ba4fb 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.graph;
 import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.Objects;
 import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
@@ -39,8 +40,6 @@ import org.apache.jena.sparql.engine.binding.BindingMap ;
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 
-import static org.apache.jena.atlas.lib.Lib.equal ;
-
 public class NodeTransformLib
 {
     /** Do a node->node conversion of an Op - return original BGP for "no change" */
@@ -180,7 +179,7 @@ public class NodeTransformLib
             Var v2 = (Var)nodeTransform.apply(v) ;
             Expr expr2 = ( expr != null ) ? transform(nodeTransform, expr) : null ;
             
-            if ( ! equal(v, v2) || ! equal(expr, expr2) )
+            if ( ! Objects.equals(v, v2) || ! Objects.equals(expr, expr2) )
                 changed = true ;
             varExprList2.add(v2, expr2) ;
         }
@@ -197,7 +196,7 @@ public class NodeTransformLib
         {
             Var v2 = (Var)nodeTransform.apply(v) ;
             varList2.add(v2) ;
-            if ( !equal(v, v2) )
+            if ( !Objects.equals(v, v2) )
                 changed = true ;
         }
         if ( ! changed )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateLoad.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateLoad.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateLoad.java
index fc0a1dd..efb605b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateLoad.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateLoad.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.modify.request;
 
-import org.apache.jena.atlas.lib.Lib ;
+import java.util.Objects;
+
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.sparql.util.Iso ;
@@ -73,7 +74,7 @@ public class UpdateLoad extends Update
         UpdateLoad other = (UpdateLoad)obj ;
         return 
             silent == other.silent &&
-            Lib.equal(source, other.source) &&
+            	Objects.equals(source, other.source) &&
             Iso.nodeIso(dest, other.dest, isoMap) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
index c2db208..465f359 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
@@ -21,10 +21,10 @@ package org.apache.jena.sparql.path;
 import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.Objects;
 import java.util.function.Predicate;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQInternalErrorException ;
@@ -247,7 +247,7 @@ public class PathLib
         if ( ! subject.isConcrete() || !object.isConcrete() )
             throw new ARQInternalErrorException("Non concrete node for existsPath evaluation") ;
         Iterator<Node> iter = PathEval.eval(graph, subject, path, execCxt.getContext()) ;
-        Predicate<Node> filter = node -> Lib.equal(node,  object); 
+        Predicate<Node> filter = node -> Objects.equals(node,  object); 
         // See if we got to the node we're interested in finishing at.
         iter = Iter.filter(iter, filter) ;
         long x = Iter.count(iter) ; 

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
index 99413a5..d0dfa27 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
@@ -19,8 +19,8 @@
 package org.apache.jena.sparql.resultset;
 
 import java.util.* ;
+
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.* ;
 import org.apache.jena.rdf.model.Model ;
@@ -333,7 +333,7 @@ public class ResultSetCompare
     private static class EqualityTestExact implements EqualityTest {
         @Override
         public boolean equal(Node n1, Node n2) {
-            return Lib.equal(n1, n2) ;
+            return Objects.equals(n1, n2) ;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
index d9c14ab..73756dc 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
@@ -21,6 +21,7 @@ package org.apache.jena.atlas.iterator;
 import java.util.function.Consumer;
 
 /**
+ * @deprecated
  * Prefer {@link Consumer}
  */
 @Deprecated

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
index 689f5bc..8545eab 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
@@ -21,6 +21,7 @@ package org.apache.jena.atlas.iterator;
 import java.util.function.Predicate;
 
 /**
+ * @deprecated
  * Prefer {@link Predicate}.
  */
 @FunctionalInterface

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
index e2bc4b4..f4c0ddf 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
@@ -18,10 +18,9 @@
 
 package org.apache.jena.atlas.iterator;
 
+import java.util.Objects;
 import java.util.function.Predicate;
 
-import org.apache.jena.atlas.lib.Lib ;
-
 public class FilterDistinctAdjacent<T> implements Predicate<T>
 {
     private boolean isSet = false ;
@@ -30,7 +29,7 @@ public class FilterDistinctAdjacent<T> implements Predicate<T>
     @Override
     public boolean test(T item)
     {
-        if ( isSet && Lib.equal(last, item) )
+        if ( isSet && Objects.equals(last, item) )
             return false ;
         last = item ;
         isSet = true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
index 70a8f26..2c97ca7 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
@@ -21,10 +21,10 @@ package org.apache.jena.atlas.iterator;
 import java.util.Arrays;
 import java.util.Iterator ;
 import java.util.NoSuchElementException ;
-import java.util.Spliterator;
 
 /** Iterator over a Java base array */
 /**
+ * @deprecated
  * Prefer {@link Arrays#asList(Object...)} with {@link Iterable#iterator()} or
  * {@link Arrays#spliterator(Object[])} or {@link Arrays#stream(Object[])}
  */

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
index 67fc3af..2a070ab 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
@@ -21,6 +21,7 @@ package org.apache.jena.atlas.iterator;
 import java.util.function.Function;
 
 /**
+ * @deprecated
  * Prefer {@link Function}.
  */
 @Deprecated

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
index e2f6dfd..2b6002a 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
@@ -21,7 +21,7 @@ package org.apache.jena.atlas.lib;
 /** Close this object.
  *  This form does not allow Exceptions (it does allow RuntimeExceptions).  
  */
-public interface Closeable extends java.io.Closeable
+public interface Closeable
 {
     public void close() ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
index a866d59..181fe88 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
@@ -37,6 +37,7 @@ public class Lib
     }
     
     /** Return true if obj1 and obj are both null or are .equals, else return false 
+     * @deprecated
      * Prefer {@link Objects#equal(Object, Object)}
      */
     @Deprecated

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java
index 4f3b055..b472f3d 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java
@@ -21,6 +21,8 @@ package org.apache.jena.atlas.lib;
 import static org.apache.jena.atlas.lib.Lib.hashCodeObject ;
 import static org.apache.jena.atlas.lib.StrUtils.str ;
 
+import java.util.Objects;
+
 public class Pair<A, B>
 {
     public static <L, R> Pair<L,R> create(L x, R y) { return new Pair<>(x,y) ; }
@@ -54,7 +56,7 @@ public class Pair<A, B>
         
         if( ! ( other instanceof Pair<?,?> ) ) return false ;
         Pair<?,?> p2 = (Pair<?,?>)other ;
-        return  Lib.equal(car(), p2.car()) && Lib.equal(cdr(), p2.cdr()) ;
+        return Objects.equals(car(), p2.car()) && Objects.equals(cdr(), p2.cdr()) ;
     }
     
     @Override 

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
index ffa6e0a..31436b1 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
@@ -19,12 +19,12 @@
 package org.apache.jena.atlas.lib.cache;
 
 import java.util.Iterator ;
+import java.util.Objects;
 import java.util.concurrent.Callable ;
 import java.util.function.BiConsumer;
 
 import org.apache.jena.atlas.iterator.SingletonIterator ;
 import org.apache.jena.atlas.lib.Cache ;
-import org.apache.jena.atlas.lib.Lib ;
 
 /** A one-slot cache.*/
 public class Cache1<K, V> implements Cache<K,V>
@@ -85,7 +85,7 @@ public class Cache1<K, V> implements Cache<K,V>
     @Override
     public void put(K key, V thing)
     {
-        if ( Lib.equal(cacheKey, key) && Lib.equal(cacheValue, thing) )
+        if ( Objects.equals(cacheKey, key) && Objects.equals(cacheValue, thing) )
             // No change.
             return ;
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
index 2ee8248..995c5d7 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
@@ -23,10 +23,10 @@ import static org.apache.jena.fuseki.Fuseki.serverLog ;
 import java.io.File ;
 import java.io.InputStream ;
 import java.util.List ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.lib.FileOps ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.lib.StrUtils ;
 import org.apache.jena.atlas.logging.LogCtl ;
 import org.apache.jena.fuseki.mgt.ManagementServer ;
@@ -47,6 +47,7 @@ import org.apache.jena.tdb.sys.Names ;
 import org.apache.jena.tdb.transaction.TransactionManager ;
 import org.eclipse.jetty.server.Server ;
 import org.slf4j.Logger ;
+
 import arq.cmd.ArgDecl ;
 import arq.cmd.CmdException ;
 import arq.cmdline.CmdARQ ;
@@ -289,7 +290,7 @@ public class FusekiCmd extends CmdARQ
         {
             String dir = getValue(argTDB) ;
             
-            if ( Lib.equal(dir, Names.memName) ) {
+            if ( Objects.equals(dir, Names.memName) ) {
                 log.info("TDB dataset: in-memory") ;
             } else {
                 if ( ! FileOps.exists(dir) )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
index 4278426..35daf70 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
@@ -19,7 +19,6 @@
 package org.apache.jena.fuseki.servlets;
 
 import static java.lang.String.format ;
-import static org.apache.jena.atlas.lib.Lib.equal ;
 import static org.apache.jena.fuseki.servlets.ServletBase.errorBadRequest ;
 import static org.apache.jena.fuseki.servlets.ServletBase.errorOccurred ;
 import static org.apache.jena.fuseki.servlets.ServletBase.log ;
@@ -27,6 +26,7 @@ import static org.apache.jena.fuseki.servlets.ServletBase.log ;
 import java.io.IOException ;
 import java.util.HashMap ;
 import java.util.Map ;
+import java.util.Objects;
 
 import javax.servlet.ServletOutputStream ;
 import javax.servlet.http.HttpServletRequest ;
@@ -129,7 +129,7 @@ public class ResponseResultSet
              
         // Stylesheet - change to application/xml.
         final String stylesheetURL = ResponseOps.paramStylesheet(request) ;
-        if ( stylesheetURL != null && equal(serializationType,WebContent.contentTypeResultsXML) )
+        if ( stylesheetURL != null && Objects.equals(serializationType,WebContent.contentTypeResultsXML) )
             contentType = WebContent.contentTypeXML ;
         
         // Force to text/plain?
@@ -139,17 +139,17 @@ public class ResponseResultSet
 
         // Better : dispatch on MediaType
         // Fuseki2 uses the SPARQL parser/write registry.
-        if ( equal(serializationType, WebContent.contentTypeResultsXML) )
+        if ( Objects.equals(serializationType, WebContent.contentTypeResultsXML) )
             sparqlXMLOutput(action, contentType, resultSet, stylesheetURL, booleanResult) ;
-        else if ( equal(serializationType, WebContent.contentTypeResultsJSON) )
+        else if ( Objects.equals(serializationType, WebContent.contentTypeResultsJSON) )
             jsonOutput(action, contentType, resultSet, booleanResult) ;
-        else if ( equal(serializationType, WebContent.contentTypeTextPlain) )
+        else if ( Objects.equals(serializationType, WebContent.contentTypeTextPlain) )
             textOutput(action, contentType, resultSet, qPrologue, booleanResult) ;
-        else if ( equal(serializationType, WebContent.contentTypeTextCSV) ) 
+        else if ( Objects.equals(serializationType, WebContent.contentTypeTextCSV) ) 
             csvOutput(action, contentType, resultSet, booleanResult) ;
-        else if (equal(serializationType, WebContent.contentTypeTextTSV) )
+        else if (Objects.equals(serializationType, WebContent.contentTypeTextTSV) )
             tsvOutput(action, contentType, resultSet, booleanResult) ;
-        else if (equal(serializationType, WebContent.contentTypeResultsThrift) )
+        else if (Objects.equals(serializationType, WebContent.contentTypeResultsThrift) )
             thriftOutput(action, contentType, resultSet, booleanResult) ;
         else
             errorBadRequest("Can't determine output serialization: "+serializationType) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
index 70a02e0..f6488c5 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
@@ -29,13 +29,14 @@ import java.util.ArrayList ;
 import java.util.HashMap ;
 import java.util.List ;
 import java.util.Map ;
+import java.util.Objects;
 
 import arq.cmd.CmdException ;
+
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.lib.DS ;
 import org.apache.jena.atlas.lib.FileOps ;
 import org.apache.jena.atlas.lib.InternalErrorException ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.fuseki.Fuseki ;
 import org.apache.jena.fuseki.FusekiConfigException ;
 import org.apache.jena.fuseki.build.Builder ;
@@ -256,7 +257,7 @@ public class FusekiServer
             Fuseki.configLog.info("Template file: " + params.templateFile) ;
             String dir = params.params.get(Template.DIR) ;
             if ( dir != null ) {
-                if ( Lib.equal(dir, Names.memName) ) {
+                if ( Objects.equals(dir, Names.memName) ) {
                     Fuseki.configLog.info("TDB dataset: in-memory") ;
                 } else {
                     if ( !FileOps.exists(dir) )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
index 2ab529b..e22ab13 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
@@ -19,7 +19,6 @@
 package org.apache.jena.fuseki.servlets;
 
 import static java.lang.String.format ;
-import static org.apache.jena.atlas.lib.Lib.equal ;
 import static org.apache.jena.riot.WebContent.charsetUTF8 ;
 import static org.apache.jena.riot.WebContent.contentTypeRDFXML ;
 import static org.apache.jena.riot.WebContent.contentTypeResultsJSON ;
@@ -33,6 +32,7 @@ import static org.apache.jena.riot.WebContent.contentTypeXML ;
 import java.io.IOException ;
 import java.util.HashMap ;
 import java.util.Map ;
+import java.util.Objects;
 
 import javax.servlet.ServletOutputStream ;
 import javax.servlet.http.HttpServletRequest ;
@@ -134,7 +134,7 @@ public class ResponseResultSet
              
         // Stylesheet - change to application/xml.
         final String stylesheetURL = ResponseOps.paramStylesheet(request) ;
-        if ( stylesheetURL != null && equal(serializationType,contentTypeResultsXML) )
+        if ( stylesheetURL != null && Objects.equals(serializationType,contentTypeResultsXML) )
             contentType = contentTypeXML ;
         
         // Force to text/plain?
@@ -143,17 +143,17 @@ public class ResponseResultSet
             contentType = contentTypeTextPlain ;
 
         // Better : dispatch on MediaType
-        if ( equal(serializationType, contentTypeResultsXML) )
+        if ( Objects.equals(serializationType, contentTypeResultsXML) )
             sparqlXMLOutput(action, contentType, resultSet, stylesheetURL, booleanResult) ;
-        else if ( equal(serializationType, contentTypeResultsJSON) )
+        else if ( Objects.equals(serializationType, contentTypeResultsJSON) )
             jsonOutput(action, contentType, resultSet, booleanResult) ;
-        else if ( equal(serializationType, contentTypeTextPlain) )
+        else if ( Objects.equals(serializationType, contentTypeTextPlain) )
             textOutput(action, contentType, resultSet, qPrologue, booleanResult) ;
-        else if ( equal(serializationType, contentTypeTextCSV) ) 
+        else if ( Objects.equals(serializationType, contentTypeTextCSV) ) 
             csvOutput(action, contentType, resultSet, booleanResult) ;
-        else if (equal(serializationType, contentTypeTextTSV) )
+        else if (Objects.equals(serializationType, contentTypeTextTSV) )
             tsvOutput(action, contentType, resultSet, booleanResult) ;
-        else if (equal(serializationType, WebContent.contentTypeResultsThrift) )
+        else if (Objects.equals(serializationType, WebContent.contentTypeResultsThrift) )
             thriftOutput(action, contentType, resultSet, booleanResult) ;
         else
             ServletOps.errorBadRequest("Can't determine output serialization: "+serializationType) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-sdb/src/main/java/org/apache/jena/sdb/util/Pair.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/util/Pair.java b/jena-sdb/src/main/java/org/apache/jena/sdb/util/Pair.java
index 5228e98..acd5abe 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/util/Pair.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/util/Pair.java
@@ -20,7 +20,8 @@ package org.apache.jena.sdb.util;
 
 import static org.apache.jena.atlas.lib.Lib.hashCodeObject ;
 import static org.apache.jena.atlas.lib.StrUtils.str ;
-import org.apache.jena.atlas.lib.Lib ;
+
+import java.util.Objects;
 
 public class Pair<A, B>
 {
@@ -53,7 +54,7 @@ public class Pair<A, B>
         
         if( ! ( other instanceof Pair<?,?> ) ) return false ;
         Pair<?,?> p2 = (Pair<?,?>)other ;
-        return Lib.equal(car(), p2.car()) && Lib.equal(cdr(), p2.cdr()) ;
+        return Objects.equals(car(), p2.car()) && Objects.equals(cdr(), p2.cdr()) ;
     }
     
     @Override 

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/Location.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/Location.java b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/Location.java
index 780ec0d..a012a5c 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/Location.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/Location.java
@@ -20,8 +20,8 @@ package org.apache.jena.tdb.base.file ;
 
 import java.io.File ;
 import java.io.IOException ;
+import java.util.Objects;
 
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.tdb.sys.Names ;
 
 /**
@@ -256,7 +256,7 @@ public class Location {
         if ( isMemUnique )
             return false ;
 
-        return Lib.equal(pathname, other.pathname) ;
+        return Objects.equals(pathname, other.pathname) ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/MetaFile.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/MetaFile.java b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/MetaFile.java
index 66d979a..4062f01 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/MetaFile.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/MetaFile.java
@@ -25,6 +25,7 @@ import java.io.IOException ;
 import java.io.InputStream ;
 import java.io.PrintStream ;
 import java.util.Comparator ;
+import java.util.Objects;
 import java.util.Properties ;
 import java.util.SortedSet ;
 import java.util.TreeSet ;
@@ -160,7 +161,7 @@ public class MetaFile implements Sync, Closeable
     /** Test whether a property has a value.  Null tests equal to not present. */
     public boolean propertyEquals(String key, String value)
     {
-        return Lib.equal(getProperty(key), value) ;
+        return Objects.equals(getProperty(key), value) ;
     }
 
     /** Set property if not already set. */
@@ -201,7 +202,7 @@ public class MetaFile implements Sync, Closeable
     {
         String value = getProperty(key) ;
         
-        if ( ! Lib.equal(value, value) )
+        if ( ! Objects.equals(value, value) )
             inconsistent(key, value, expected) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-tdb/src/main/java/org/apache/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
index 3196182..9662c03 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
@@ -23,12 +23,12 @@ import java.io.FileOutputStream ;
 import java.io.OutputStream ;
 import java.util.Arrays ;
 import java.util.List ;
+import java.util.Objects;
 
 import org.apache.jena.atlas.AtlasException ;
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.lib.DateTimeUtils ;
 import org.apache.jena.atlas.lib.FileOps ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.logging.LogCtl ;
 import org.apache.jena.atlas.logging.ProgressLogger ;
 import org.apache.jena.graph.Node ;
@@ -50,6 +50,7 @@ import org.apache.jena.tdb.store.nodetable.NodeTable ;
 import org.apache.jena.tdb.store.nodetupletable.NodeTupleTable ;
 import org.apache.jena.tdb.sys.Names ;
 import org.slf4j.Logger ;
+
 import tdb.cmdline.CmdTDB ;
 import arq.cmd.ArgDecl ;
 import arq.cmd.CmdException ;
@@ -107,7 +108,7 @@ public class CmdNodeTableBuilder extends CmdGeneral
         if ( dataFileQuads == null )
             dataFileQuads = location.getPath("quads", "tmp") ;
         
-        if ( Lib.equal(dataFileTriples, dataFileQuads) )
+        if ( Objects.equals(dataFileTriples, dataFileQuads) )
             cmdError("Triples and Quads work files are the same") ;
         
         if ( super.contains(argNoStats) )

http://git-wip-us.apache.org/repos/asf/jena/blob/6711901a/jena-tdb/src/main/java/org/apache/jena/tdb/sys/FileRef.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/sys/FileRef.java b/jena-tdb/src/main/java/org/apache/jena/tdb/sys/FileRef.java
index c16180c..af70467 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/sys/FileRef.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/sys/FileRef.java
@@ -20,10 +20,10 @@ package org.apache.jena.tdb.sys;
 
 import java.util.HashMap ;
 import java.util.Map ;
+import java.util.Objects;
 import java.util.TreeMap ;
 
 import org.apache.jena.atlas.lib.FileOps ;
-import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.lib.Tuple ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.tdb.TDBException ;
@@ -182,7 +182,7 @@ public class FileRef
         if ( id != other.id )
             return false ;
         // Should not be needed.
-        if ( ! Lib.equal(filename, other.filename) ) return false ;
+        if ( ! Objects.equals(filename, other.filename) ) return false ;
         return true ;
     }
 }


[3/8] jena git commit: Using Java 8 types in o.a.j.atlas

Posted by an...@apache.org.
Using Java 8 types in o.a.j.atlas


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

Branch: refs/heads/master
Commit: 6b4753453a3be174aecc07ce9caf659e916c04f7
Parents: 2257377
Author: ajs6f <aj...@virginia.edu>
Authored: Mon May 4 12:30:38 2015 -0400
Committer: ajs6f <aj...@virginia.edu>
Committed: Mon May 4 15:16:16 2015 -0400

----------------------------------------------------------------------
 .../org/apache/jena/atlas/csv/CSVParser.java    |   9 +-
 .../java/org/apache/jena/riot/other/GLib.java   |  58 ++----
 .../org/apache/jena/riot/out/JsonLDWriter.java  |   8 +-
 .../process/normalize/CanonicalizeLiteral.java  |   6 +-
 .../apache/jena/riot/system/PrefixMapBase.java  |  25 +--
 .../org/apache/jena/riot/thrift/BinRDF.java     |  12 +-
 .../jena/sparql/core/DatasetGraphBase.java      |  12 +-
 .../jena/sparql/core/DatasetGraphQuad.java      |  13 +-
 .../org/apache/jena/sparql/engine/Rename.java   |  24 +--
 .../ReorderTransformationSubstitution.java      |  12 +-
 .../org/apache/jena/sparql/expr/E_Exists.java   |   6 +-
 .../apache/jena/sparql/expr/E_NotExists.java    |   6 +-
 .../java/org/apache/jena/sparql/expr/Expr.java  |   5 +-
 .../apache/jena/sparql/expr/ExprAggregator.java |   8 +-
 .../apache/jena/sparql/expr/ExprFunction0.java  |   6 +-
 .../apache/jena/sparql/expr/ExprFunction1.java  |   6 +-
 .../apache/jena/sparql/expr/ExprFunction2.java  |   6 +-
 .../apache/jena/sparql/expr/ExprFunction3.java  |   6 +-
 .../apache/jena/sparql/expr/ExprFunctionN.java  |   5 +-
 .../org/apache/jena/sparql/expr/ExprList.java   |   5 +-
 .../org/apache/jena/sparql/expr/ExprNode.java   |   5 +-
 .../org/apache/jena/sparql/expr/ExprVar.java    |   7 +-
 .../org/apache/jena/sparql/expr/NodeValue.java  |   6 +-
 .../jena/sparql/expr/aggregate/Aggregator.java  |   5 +-
 .../sparql/expr/aggregate/AggregatorBase.java   |   4 +-
 .../apache/jena/sparql/graph/NodeTransform.java |  12 +-
 .../jena/sparql/graph/NodeTransformLib.java     |  48 ++---
 .../jena/sparql/graph/NodeTransformOp.java      |  15 +-
 .../modify/NodeTransformBNodesToVariables.java  |   6 +-
 .../apache/jena/sparql/modify/TemplateLib.java  |  31 ++-
 .../jena/sparql/modify/UpdateEngineWorker.java  |   4 +-
 .../org/apache/jena/sparql/path/PathLib.java    |   4 +-
 .../jena/sparql/path/eval/PathEngine.java       |  25 +--
 .../jena/sparql/path/eval/PathEvaluator.java    |   6 +-
 .../jena/sparql/pfunction/library/strSplit.java |  12 +-
 .../apache/jena/sparql/resultset/CSVInput.java  |   6 +-
 .../jena/sparql/resultset/ResultSetCompare.java |  12 +-
 .../org/apache/jena/sparql/util/ModelUtils.java |  19 +-
 .../jena/sparql/util/graph/GraphList.java       |  12 +-
 .../jena/riot/process/TestNormalization.java    |   4 +-
 .../jena/riot/thrift/TestStreamRDFThrift.java   |  13 +-
 .../org/apache/jena/atlas/iterator/Action.java  |   9 +-
 .../apache/jena/atlas/iterator/ActionCount.java |   6 +-
 .../jena/atlas/iterator/ActionNothing.java      |  26 ---
 .../org/apache/jena/atlas/iterator/Filter.java  |   8 +-
 .../atlas/iterator/FilterDistinctAdjacent.java  |   8 +-
 .../jena/atlas/iterator/FilterOutNulls.java     |  32 ---
 .../apache/jena/atlas/iterator/FilterStack.java |  16 +-
 .../jena/atlas/iterator/FilterUnique.java       |  12 +-
 .../org/apache/jena/atlas/iterator/Iter.java    | 193 +++++--------------
 .../jena/atlas/iterator/IteratorArray.java      |   6 +
 .../apache/jena/atlas/iterator/MapUtils.java    |  36 ----
 .../apache/jena/atlas/iterator/Transform.java   |   8 +-
 .../apache/jena/atlas/lib/ActionKeyValue.java   |   9 +-
 .../java/org/apache/jena/atlas/lib/Cache.java   |   3 +-
 .../org/apache/jena/atlas/lib/CacheSet.java     |   4 +-
 .../org/apache/jena/atlas/lib/Closeable.java    |   2 +-
 .../apache/jena/atlas/lib/CollectionUtils.java  |  26 +--
 .../java/org/apache/jena/atlas/lib/Lib.java     |  13 +-
 .../org/apache/jena/atlas/lib/ListUtils.java    |   7 +-
 .../org/apache/jena/atlas/lib/MapUtils.java     |  45 -----
 .../java/org/apache/jena/atlas/lib/Problem.java |  25 ---
 .../org/apache/jena/atlas/lib/SetUtils.java     |  26 +--
 .../java/org/apache/jena/atlas/lib/Tuple.java   |  22 +--
 .../org/apache/jena/atlas/lib/cache/Cache0.java |   4 +-
 .../org/apache/jena/atlas/lib/cache/Cache1.java |   8 +-
 .../apache/jena/atlas/lib/cache/CacheGuava.java |   9 +-
 .../jena/atlas/lib/cache/CacheSetImpl.java      |  16 +-
 .../jena/atlas/lib/cache/CacheSetSync.java      |   5 +-
 .../jena/atlas/lib/cache/CacheSetWrapper.java   |   5 +-
 .../jena/atlas/lib/cache/CacheSimple.java       |  13 +-
 .../jena/atlas/lib/cache/CacheWrapper.java      |   4 +-
 .../java/org/apache/jena/base/Closeable.java    |  27 ---
 .../apache/jena/atlas/iterator/TestIter.java    | 134 +------------
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |  12 +-
 .../jena/fuseki/servlets/SPARQL_Protocol.java   |  10 +-
 .../query/rewriter/SecuredFunction.java         |   4 +-
 .../org/apache/jena/sdb/compiler/QuadBlock.java |   6 +-
 .../org/apache/jena/sdb/compiler/SDB_QC.java    |  14 +-
 .../apache/jena/sdb/compiler/TransformSDB.java  |   4 +-
 .../org/apache/jena/sdb/core/ScopeEntry.java    |  28 +--
 .../org/apache/jena/sdb/core/ScopeRename.java   |  21 --
 .../sdb/core/sqlnode/GenerateSQLVisitor.java    |   9 +-
 .../org/apache/jena/sdb/print/ActionPrint.java  |   7 +-
 .../jena/sdb/test/junit/ParamAllStoreDesc.java  |  11 +-
 .../jena/sdb/test/junit/ParamAllStores.java     |  11 +-
 .../apache/jena/sdb/test/junit/StoreList.java   |  21 +-
 .../spatial/SpatialDocProducerTriples.java      |  19 --
 .../jena/tdb/base/block/BlockMgrCache.java      |   6 +-
 .../tdb/index/bplustree/BPlusTreeRewriter.java  |  10 +-
 .../java/org/apache/jena/tdb/lib/NodeLib.java   |   9 +-
 .../java/org/apache/jena/tdb/lib/TupleLib.java  |  34 +---
 .../apache/jena/tdb/solver/OpExecutorTDB1.java  |  11 +-
 .../java/org/apache/jena/tdb/solver/QC2.java    |   9 +-
 .../org/apache/jena/tdb/solver/SolverLib.java   |  52 ++---
 .../tdb/solver/StageGeneratorDirectTDB.java     |   9 +-
 .../apache/jena/tdb/solver/StageMatchTuple.java |  34 +---
 .../tdb/solver/stats/StatsCollectorBase.java    |   5 +-
 .../apache/jena/tdb/store/DatasetGraphTDB.java  |  13 +-
 .../org/apache/jena/tdb/store/GraphTDB.java     |  19 +-
 .../org/apache/jena/tdb/store/QuadTable.java    |   9 -
 .../org/apache/jena/tdb/store/TripleTable.java  |   9 -
 .../tdb/store/nodetable/NodeTableNative.java    |  35 +---
 .../tdb/store/tupletable/TupleIndexRecord.java  |  18 +-
 .../apache/jena/tdb/base/record/RecordLib.java  |   9 +-
 .../apache/jena/tdb/store/TestQuadFilter.java   |  20 +-
 106 files changed, 455 insertions(+), 1294 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java b/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
index 83613ae..e1afc2f 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
@@ -23,12 +23,12 @@ import java.io.InputStream ;
 import java.io.Reader ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.commons.csv.CSVFormat ;
 import org.apache.commons.csv.CSVRecord ;
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 
 /** 
  *  Wrapper for Commons CSV parser.
@@ -63,12 +63,7 @@ public class CSVParser implements Iterable<List<String>>
         }
     }
     
-    private static Transform<CSVRecord, List<String>> transform = new Transform<CSVRecord, List<String>>() {
-        @Override
-        public List<String> convert(CSVRecord record) {
-            return recordToList(record) ;
-        }
-    } ;
+    private static Function<CSVRecord, List<String>> transform = rec -> recordToList(rec) ;
     
     @Override
     public Iterator<List<String>> iterator() {

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/riot/other/GLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/other/GLib.java b/jena-arq/src/main/java/org/apache/jena/riot/other/GLib.java
index 6a6958a..db14724 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/other/GLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/other/GLib.java
@@ -19,9 +19,7 @@
 package org.apache.jena.riot.other;
 
 import java.util.Iterator ;
-
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -42,89 +40,55 @@ public class GLib
     public static Iterator<Node> listSubjects(Graph graph)
     {
         ExtendedIterator<Triple> iter = graph.find(Node.ANY, Node.ANY, Node.ANY) ;
-        return Iter.iter(iter).map(projectTripleSubject).distinct() ;
+        return Iter.iter(iter).map(Triple::getSubject).distinct() ;
     }
 
     /** List the predicates in a graph (no duplicates) */
     public static Iterator<Node> listPredicates(Graph graph)
     {
         ExtendedIterator<Triple> iter = graph.find(Node.ANY, Node.ANY, Node.ANY) ;
-        return Iter.iter(iter).map(projectTriplePredicate).distinct() ;
+        return Iter.iter(iter).map(Triple::getPredicate).distinct() ;
     }
     
     /** List the objects in a graph (no duplicates) */
     public static Iterator<Node> listObjects(Graph graph)
     {
         ExtendedIterator<Triple> iter = graph.find(Node.ANY, Node.ANY, Node.ANY) ;
-        return Iter.iter(iter).map(projectTripleObject).distinct() ;
+        return Iter.iter(iter).map(Triple::getObject).distinct() ;
     }
-    
-    private static Transform<Quad, Triple> transformQuad2Triple = new Transform<Quad, Triple> () {
-        @Override
-        public Triple convert(Quad quad)    { return quad.asTriple() ; }
-    } ;
 
     /** Project quads to triples */
     public static Iter<Triple> quads2triples(Iterator<Quad> iter)
     {
-        return Iter.iter(iter).map(transformQuad2Triple) ;
+        return Iter.iter(iter).map(Quad::asTriple) ;
     }
 
     /** Project quad to graphname */
     public static Iterator<Node> quad2graphName(Iterator<Quad> iter)
-    { return Iter.map(iter, projectQuadGraphName) ; }
+    { return Iter.map(iter, Quad::getGraph) ; }
     
     /** Project quad to graphname */
     public static Iterator<Node> quad2subject(Iterator<Quad> iter)
-    { return Iter.map(iter, projectQuadSubject) ; }
+    { return Iter.map(iter, Quad::getSubject) ; }
     
     /** Project quad to predicate */
     public static Iterator<Node> quad2predicate(Iterator<Quad> iter)
-    { return Iter.map(iter, projectQuadPredicate) ; }
+    { return Iter.map(iter, Quad::getPredicate) ; }
     
     /** Project quad to object */
     public static Iterator<Node> quad2object(Iterator<Quad> iter)
-    { return Iter.map(iter, projectQuadObject) ; }
+    { return Iter.map(iter, Quad::getObject) ; }
     
     /** Project triple to subject */ 
     public static Iterator<Node> triple2subject(Iterator<Triple> iter)
-    { return Iter.map(iter, projectTripleSubject) ; }
+    { return Iter.map(iter, Triple::getSubject) ; }
     
     /** Project triple to predicate */ 
     public static Iterator<Node> triple2predicate(Iterator<Triple> iter)
-    { return Iter.map(iter, projectTriplePredicate) ; }
+    { return Iter.map(iter, Triple::getPredicate) ; }
     
     /** Project triple to object */ 
     public static Iterator<Node> triple2object(Iterator<Triple> iter)
-    { return Iter.map(iter, projectTripleObject) ; }
-
-    /** Transform quad to graphname */
-    public static Transform<Quad, Node> projectQuadGraphName = new Transform<Quad, Node>() {
-        @Override  public Node convert(Quad quad) { return quad.getGraph() ; }
-    } ;
-    /** Transform quad to subject */
-    public static Transform<Quad, Node> projectQuadSubject = new Transform<Quad, Node>() {
-        @Override  public Node convert(Quad quad) { return quad.getSubject() ; }
-    } ;
-    /** Transform quad to predicate */
-    public static Transform<Quad, Node> projectQuadPredicate = new Transform<Quad, Node>() {
-        @Override public Node convert(Quad quad) { return quad.getPredicate() ; }
-    } ;
-    /** Transform quad to object */
-    public static Transform<Quad, Node> projectQuadObject = new Transform<Quad, Node>() {
-        @Override public Node convert(Quad quad) { return quad.getObject() ; }
-    } ;
-    /** Transform triple to subject */ 
-    public static Transform<Triple, Node> projectTripleSubject   = new Transform<Triple, Node>() {
-        @Override public Node convert(Triple triple) { return triple.getSubject() ; }
-    } ;
-    /** Transform triple to predicate */ 
-    public static Transform<Triple, Node> projectTriplePredicate = new Transform<Triple, Node>() {
-        @Override public Node convert(Triple triple) { return triple.getPredicate() ; }
-    } ;
-    /** Transform triple to object */ 
-    public static Transform<Triple, Node> projectTripleObject    = new Transform<Triple, Node>() {
-        @Override public Node convert(Triple triple) { return triple.getObject() ; }
-    } ;
+    { return Iter.map(iter, Triple::getObject) ; }
 }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/riot/out/JsonLDWriter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/out/JsonLDWriter.java b/jena-arq/src/main/java/org/apache/jena/riot/out/JsonLDWriter.java
index dbd8fff..c7530a0 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/out/JsonLDWriter.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/out/JsonLDWriter.java
@@ -23,10 +23,10 @@ import java.io.OutputStream ;
 import java.io.OutputStreamWriter ;
 import java.io.Writer ;
 import java.util.* ;
-import java.util.Map.Entry ;
+import java.util.Map.Entry;
+import java.util.function.Consumer;
 
 import org.apache.jena.atlas.io.IO ;
-import org.apache.jena.atlas.iterator.Action ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.lib.Chars ;
 import org.apache.jena.graph.Graph ;
@@ -123,9 +123,9 @@ public class JsonLDWriter extends WriterDatasetRIOTBase
     private static void addProperties(final Map<String, Object> ctx, Graph graph) {
         // Add some properties directly so it becomes "localname": ....
         final Set<String> dups = new HashSet<>() ;
-        Action<Triple> x = new Action<Triple>() {
+        Consumer<Triple> x = new Consumer<Triple>() {
             @Override
-            public void apply(Triple item) {
+            public void accept(Triple item) {
                 Node p = item.getPredicate() ;
                 Node o = item.getObject() ;
                 if ( p.equals(RDF.type.asNode()) )

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java b/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
index c7a11ad..3f8490e 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
@@ -20,17 +20,17 @@ package org.apache.jena.riot.process.normalize;
 
 import java.util.HashMap ;
 import java.util.Map ;
+import java.util.function.Function;
 
 import org.apache.jena.datatypes.RDFDatatype ;
 import org.apache.jena.datatypes.xsd.XSDDatatype ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.riot.web.LangTag ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.util.NodeUtils ;
 import org.apache.jena.vocabulary.RDF ;
 
-public class CanonicalizeLiteral implements NodeTransform    
+public class CanonicalizeLiteral implements Function<Node, Node>    
 {
     private static final CanonicalizeLiteral singleton = new CanonicalizeLiteral(); 
 
@@ -39,7 +39,7 @@ public class CanonicalizeLiteral implements NodeTransform
     private CanonicalizeLiteral() {}
     
     @Override
-    public Node convert(Node node) {
+    public Node apply(Node node) {
         if ( ! node.isLiteral() )
             return node ;
             

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/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 4190e7c..10dc6de 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
@@ -18,12 +18,11 @@
 
 package org.apache.jena.riot.system;
 
+import static java.util.stream.Collectors.toMap;
+
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
-
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.atlas.lib.ActionKeyValue;
 import org.apache.jena.atlas.lib.Pair;
 import org.apache.jena.iri.IRI;
 import org.apache.jena.iri.IRIFactory;
@@ -53,16 +52,8 @@ public abstract class PrefixMapBase implements PrefixMap {
     
     @Override
     public Map<String, String> getMappingCopyStr() {
-        final Map<String, String> smap = new HashMap<>();
-        ActionKeyValue<String, IRI> action = new ActionKeyValue<String, IRI>() {
-            @Override
-            public void apply(String key, IRI value) {
-                String str = value.toString();
-                smap.put(key, str);
-            }
-        };
-        Iter.apply(getMapping(), action);
-        return smap;
+		return getMapping().entrySet().stream()
+				.collect(toMap(Map.Entry::getKey, v -> v.getValue().toString()));
     }
     
     @Override
@@ -72,9 +63,7 @@ public abstract class PrefixMapBase implements PrefixMap {
     
     @Override
     public void putAll(PrefixMap pmap) {
-        for (Map.Entry<String, IRI> e : pmap.getMapping().entrySet()) {
-            this.add(e.getKey(), e.getValue());
-        }
+    		pmap.getMapping().forEach(this::add);
     }
 
     @Override
@@ -84,9 +73,7 @@ public abstract class PrefixMapBase implements PrefixMap {
 
     @Override
     public void putAll(Map<String, String> mapping) {
-        for (Map.Entry<String, String> e : mapping.entrySet()) {
-            this.add(e.getKey(), e.getValue());
-        }
+    		mapping.forEach(this::add);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/riot/thrift/BinRDF.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/thrift/BinRDF.java b/jena-arq/src/main/java/org/apache/jena/riot/thrift/BinRDF.java
index 29ad8d9..96e4ea6 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/thrift/BinRDF.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/thrift/BinRDF.java
@@ -22,10 +22,10 @@ import java.io.BufferedOutputStream ;
 import java.io.InputStream ;
 import java.io.OutputStream ;
 import java.util.List ;
+import java.util.function.Consumer;
 
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.iterator.Action ;
 import org.apache.jena.query.ResultSet ;
 import org.apache.jena.riot.system.PrefixMap ;
 import org.apache.jena.riot.system.PrefixMapFactory ;
@@ -168,11 +168,7 @@ public class BinRDF {
 
     // ** Java7 support
     public static void applyVisitor(TProtocol protocol, final VisitorStreamRowTRDF visitor) {
-        Action<RDF_StreamRow> action = new Action<RDF_StreamRow>() {
-            @Override
-            public void apply(RDF_StreamRow z) { TRDF.visit(z, visitor) ; }
-        } ;
-        apply(protocol, action) ;
+        apply(protocol, z -> TRDF.visit(z, visitor)) ;
     }
     
     /**
@@ -180,7 +176,7 @@ public class BinRDF {
      * @param protocol TProtocol
      * @param action   Code to act on the row.
      */
-    public static void apply(TProtocol protocol, Action<RDF_StreamRow> action) {
+    public static void apply(TProtocol protocol, Consumer<RDF_StreamRow> action) {
         RDF_StreamRow row = new RDF_StreamRow() ;
         while(protocol.getTransport().isOpen()) {
             try { row.read(protocol) ; }
@@ -189,7 +185,7 @@ public class BinRDF {
                     break ;
             }
             catch (TException ex) { TRDF.exception(ex) ; }
-            action.apply(row) ;
+            action.accept(row) ;
             row.clear() ;
         }
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
index 196ecf8..bd87c82 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
@@ -19,10 +19,8 @@
 package org.apache.jena.sparql.core;
 
 import java.util.Iterator ;
-
 import org.apache.jena.atlas.io.IndentedLineBuffer ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -189,15 +187,7 @@ abstract public class DatasetGraphBase implements DatasetGraph
 
     protected static Iter<Quad> triples2quads(final Node graphNode, Iterator<Triple> iter)
     {
-        Transform<Triple, Quad> transformNamedGraph = new Transform<Triple, Quad> () {
-            @Override
-            public Quad convert(Triple triple)
-            {
-                return new Quad(graphNode, triple) ;
-            }
-        } ;
-
-        return Iter.iter(iter).map(transformNamedGraph) ;
+        return Iter.iter(iter).map(t -> new Quad(graphNode, t)) ;
     }
 
     

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphQuad.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphQuad.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphQuad.java
index 5b28c90..d685a71 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphQuad.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphQuad.java
@@ -19,28 +19,19 @@
 package org.apache.jena.sparql.core;
 
 import java.util.Iterator ;
-
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.graph.Node ;
 
 
 /** A DatasetGraph base class for pure quad-centric storage.     
  */
 public abstract class DatasetGraphQuad extends DatasetGraphBase
-{
-    static Transform<Quad, Node> projectGraphName = new Transform<Quad, Node>() {
-        @Override
-        public Node convert(Quad quad)
-        {
-            return quad.getGraph() ; 
-        }} ;
-    
+{   
     @Override
     public Iterator<Node> listGraphNodes()
     {
         Iter<Quad> iter = Iter.iter(find(Node.ANY, Node.ANY, Node.ANY, Node.ANY)) ;
-        return iter.map(projectGraphName).distinct() ;
+        return iter.map(Quad::getGraph).distinct() ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
index 96a8751..bc1d4ea 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java
@@ -22,6 +22,7 @@ import java.util.Collection ;
 import java.util.HashMap ;
 import java.util.Map ;
 import java.util.Set ;
+import java.util.function.Function;
 
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQConstants ;
@@ -29,7 +30,6 @@ import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 
 /** Support for renaming all the variables in an algebra expession
@@ -49,14 +49,14 @@ public class Rename
     /** Rename one node to another */
     public static Op renameNode(Op op, Node oldName, Node newName)
     {
-        NodeTransform renamer = new RenameNode(oldName, newName) ;
+    		Function<Node, Node> renamer = new RenameNode(oldName, newName) ;
         return NodeTransformLib.transform(renamer, op) ;
     }
 
     /** Rename one variable to another */
     public static Op renameVar(Op op, Var oldName, Var newName)
     {
-        NodeTransform renamer = new RenameNode(oldName, newName) ;
+    		Function<Node, Node> renamer = new RenameNode(oldName, newName) ;
         return NodeTransformLib.transform(renamer, op) ;
     }
     
@@ -76,13 +76,13 @@ public class Rename
     /** Rename all variables in an expression, EXCEPT for those named as constant */ 
     public static ExprList renameVars(ExprList exprList, Set<Var> constants)
     {
-        NodeTransform renamer = new RenameAnyVars(constants, prefix) ;
+    		Function<Node, Node> renamer = new RenameAnyVars(constants, prefix) ;
         return NodeTransformLib.transform(renamer, exprList) ;
     }
         
     public static Expr renameVars(Expr expr, Set<Var> constants)
     {
-        NodeTransform renamer = new RenameAnyVars(constants, prefix) ;
+    		Function<Node, Node> renamer = new RenameAnyVars(constants, prefix) ;
         return NodeTransformLib.transform(renamer, expr) ;
     }
     
@@ -90,13 +90,13 @@ public class Rename
      * This assumes the op was renamed by VarRename.rename */
     public static Op reverseVarRename(Op op, boolean repeatedly)
     {
-        NodeTransform renamer = new UnrenameAnyVars(prefix, repeatedly) ;
+    		Function<Node, Node> renamer = new UnrenameAnyVars(prefix, repeatedly) ;
         return NodeTransformLib.transform(renamer, op) ;
     }
     
     // ---- Transforms that do the renaming and unrenaming.
     
-    static class RenameNode implements NodeTransform
+    static class RenameNode implements Function<Node, Node>
     {
         private final Node oldName ;
         private final Node newName ;
@@ -107,7 +107,7 @@ public class Rename
         }
         
         @Override
-        public Node convert(Node node)
+        public Node apply(Node node)
         {
             if ( node.equals(oldName) )
                 return newName ;
@@ -116,7 +116,7 @@ public class Rename
         
     }
     
-    static class RenameAnyVars implements NodeTransform
+    static class RenameAnyVars implements Function<Node, Node>
     {
         private final Map<Var, Var> aliases = new HashMap<>() ;
         private final Collection<Var> constants ;
@@ -129,7 +129,7 @@ public class Rename
         }
         
         @Override
-        public final Node convert(Node node)
+        public final Node apply(Node node)
         {
             if ( ! Var.isVar(node) ) return node ;
             if ( constants.contains(node) ) return node ;
@@ -151,7 +151,7 @@ public class Rename
     }
 
     /** Reverse a renaming (assuming renaming was done by prefixing variable names) */
-    static class UnrenameAnyVars implements NodeTransform
+    static class UnrenameAnyVars implements Function<Node, Node>
     {
         private final String varPrefix ;
         private final boolean repeatedly ;
@@ -163,7 +163,7 @@ public class Rename
         }
 
         @Override
-        public Node convert(Node node)
+        public Node apply(Node node)
         {
             if ( ! Var.isVar(node) ) 
                 return node ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderTransformationSubstitution.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderTransformationSubstitution.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderTransformationSubstitution.java
index e316b31..d4caa80 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderTransformationSubstitution.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderTransformationSubstitution.java
@@ -22,10 +22,8 @@ import static org.apache.jena.sparql.util.StringUtils.printAbbrev ;
 
 import java.util.ArrayList ;
 import java.util.List ;
-
 import org.apache.jena.atlas.iterator.AccString ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.StrUtils ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -64,7 +62,7 @@ public abstract class ReorderTransformationSubstitution implements ReorderTransf
         // Or done here as a second pass mutate of PatternTriples
 
         // Convert to a mutable form (that allows things like "TERM")
-        List<PatternTriple> components = Iter.toList(Iter.map(triples.iterator(), convert)) ;
+        List<PatternTriple> components = Iter.toList(Iter.map(triples.iterator(), PatternTriple::new)) ;
 
         // Allow subclasses to get in (e.g. static reordering).
         components = modifyComponents(components) ;
@@ -299,12 +297,4 @@ public abstract class ReorderTransformationSubstitution implements ReorderTransf
                 return "(" + printAbbrev(pt.toString()) + ")" ;
         }
     } ;
-
-    // Triples to TriplePatterns.
-    private static Transform<Triple, PatternTriple> convert = new Transform<Triple, PatternTriple>(){
-        @Override
-        public PatternTriple convert(Triple triple)
-        {
-            return new PatternTriple(triple) ;
-        }} ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
index 3d7f6a3..0445350 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java
@@ -18,13 +18,15 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.algebra.Algebra ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Substitute ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 import org.apache.jena.sparql.sse.Tags ;
 import org.apache.jena.sparql.syntax.Element ;
@@ -56,7 +58,7 @@ public class E_Exists extends ExprFunctionOp
     }
 
     @Override
-    public Expr applyNodeTransform(NodeTransform nodeTransform)
+    public Expr applyNodeTransform(Function<Node, Node> nodeTransform)
     {
         Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ;
         return new E_Exists(getElement(), op2) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
index 2f41b9e..250d105 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java
@@ -18,13 +18,15 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.algebra.Algebra ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Substitute ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 import org.apache.jena.sparql.sse.Tags ;
 import org.apache.jena.sparql.syntax.Element ;
@@ -57,7 +59,7 @@ public class E_NotExists extends ExprFunctionOp
     }
 
     @Override
-    public Expr applyNodeTransform(NodeTransform nodeTransform)
+    public Expr applyNodeTransform(Function<Node, Node> nodeTransform)
     {
         Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ;
         return new E_NotExists(getElement(), op2) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
index 026b897..124a842 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
@@ -20,13 +20,14 @@ package org.apache.jena.sparql.expr;
 
 import java.util.Collection ;
 import java.util.Set ;
+import java.util.function.Function;
 
 import javax.xml.datatype.DatatypeConstants ;
 
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 public interface Expr
 {
@@ -63,7 +64,7 @@ public interface Expr
     /**
      * Rewrite, applying a node->node transformation
      */
-    public Expr applyNodeTransform(NodeTransform transform) ;
+    public Expr applyNodeTransform(Function<Node, Node> transform) ;
 
     /** Deep copy */
     public Expr deepCopy() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
index 8db9b01..5f1794e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java
@@ -19,6 +19,9 @@
 package org.apache.jena.sparql.expr;
 
 import static org.apache.jena.atlas.lib.Lib.equal ;
+
+import java.util.function.Function;
+
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Node ;
@@ -27,7 +30,6 @@ import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.aggregate.Aggregator ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 
 /** Group aggregation functions calculated a value during grouping and
@@ -107,10 +109,10 @@ public class ExprAggregator extends ExprNode
     }
     
     @Override
-    public ExprAggregator applyNodeTransform(NodeTransform transform)
+    public ExprAggregator applyNodeTransform(Function<Node, Node> transform)
     {
         // Can't rewrite this to a non-variable.
-        Node node = transform.convert(var) ;
+        Node node = transform.apply(var) ;
         if ( ! Var.isVar(node) )
         {
             Log.warn(this, "Attempt to convert an aggregation variable to a non-variable: ignored") ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
index 8593147..696393c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java
@@ -18,9 +18,11 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 /** An expression that is constant (does not depend on evaluating a sub expression). */
 
@@ -53,7 +55,7 @@ public abstract class ExprFunction0 extends ExprFunction
     public abstract NodeValue eval(FunctionEnv env)  ;
     
     @Override
-    final public Expr applyNodeTransform(NodeTransform transform)
+    final public Expr applyNodeTransform(Function<Node, Node> transform)
     {
         // Nothing to transform. 
         return copy() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
index 97901ef..e55548d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java
@@ -18,10 +18,12 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
 import org.apache.jena.atlas.lib.Lib ;
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 /** A function that has a single argument */
  
@@ -84,7 +86,7 @@ public abstract class ExprFunction1 extends ExprFunction
     }
 
     @Override
-    final public Expr applyNodeTransform(NodeTransform transform)
+    final public Expr applyNodeTransform(Function<Node, Node> transform)
     {
         Expr e = (expr == null ? null : expr.applyNodeTransform(transform)) ;
         return copy(e) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
index 4883ad9..79a824f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java
@@ -18,10 +18,12 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
 import org.apache.jena.atlas.lib.Lib ;
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 
 /** A function of two arguments */
@@ -95,7 +97,7 @@ public abstract class ExprFunction2 extends ExprFunction
     
 
     @Override
-    final public Expr applyNodeTransform(NodeTransform transform)
+    final public Expr applyNodeTransform(Function<Node, Node> transform)
     {
         Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ;
         Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
index 82d842f..f6d9a41 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java
@@ -18,10 +18,12 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
 import org.apache.jena.atlas.lib.Lib ;
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 
 /** A function of three arguments */
@@ -105,7 +107,7 @@ public abstract class ExprFunction3 extends ExprFunction
     
 
     @Override
-    final public Expr applyNodeTransform(NodeTransform transform)
+    final public Expr applyNodeTransform(Function<Node, Node> transform)
     {
         Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ;
         Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
index 720f79d..d2cf110 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java
@@ -20,10 +20,11 @@ package org.apache.jena.sparql.expr;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.function.Function;
 
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 /** A function which takes N arguments (N may be variable e.g. regex) */
  
@@ -81,7 +82,7 @@ public abstract class ExprFunctionN extends ExprFunction
     }
 
     @Override
-    public Expr applyNodeTransform(NodeTransform transform)
+    public Expr applyNodeTransform(Function<Node, Node> transform)
     {
         ExprList newArgs = new ExprList() ;
         for ( int i = 1 ; i <= numArgs() ; i++ )

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
index 03ab237..d526bba 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
@@ -19,11 +19,12 @@
 package org.apache.jena.sparql.expr;
 
 import java.util.* ;
+import java.util.function.Function;
 
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.ExecutionContext ;
 import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.util.Context ;
 
 public class ExprList implements Iterable<Expr>
@@ -76,7 +77,7 @@ public class ExprList implements Iterable<Expr>
     /**
      * Rewrite, applying a node->node transformation
      */
-    public ExprList applyNodeTransform(NodeTransform transform) {
+    public ExprList applyNodeTransform(Function<Node, Node> transform) {
         ExprList x = new ExprList() ;
         for ( Expr e : expressions)
             x.add(e.applyNodeTransform(transform));

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
index 680bdf8..87eec7f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
@@ -20,13 +20,14 @@ package org.apache.jena.sparql.expr;
 
 import java.util.Collection ;
 import java.util.Set ;
+import java.util.function.Function;
 
+import org.apache.jena.graph.Node;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.util.ExprUtils ;
 
 
@@ -85,7 +86,7 @@ public abstract class ExprNode implements Expr
     public abstract Expr copySubstitute(Binding binding) ;
     
     @Override
-    public abstract Expr applyNodeTransform(NodeTransform transform) ;
+    public abstract Expr applyNodeTransform(Function<Node, Node> transform) ;
 
         
     // ---- Default implementations

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
index fc45447..a1a589f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java
@@ -18,6 +18,8 @@
 
 package org.apache.jena.sparql.expr;
 
+import java.util.function.Function;
+
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.Query ;
@@ -25,7 +27,6 @@ import org.apache.jena.sparql.ARQInternalErrorException ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 /** An expression that is a variable in an expression. */
  
@@ -75,9 +76,9 @@ public class ExprVar extends ExprNode
     }
     
     @Override
-    public Expr applyNodeTransform(NodeTransform transform)
+    public Expr applyNodeTransform(Function<Node, Node> transform)
     {
-        Node node = transform.convert(varNode) ;
+        Node node = transform.apply(varNode) ;
         if ( Var.isVar(node))
             return new ExprVar(Var.alloc(node)) ;
         return NodeValue.makeNode(node) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
index 10cfde5..d960de1 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
@@ -51,6 +51,7 @@ import java.util.Calendar ;
 import java.util.Iterator ;
 import java.util.Properties ;
 import java.util.ServiceLoader ;
+import java.util.function.Function;
 
 import javax.xml.datatype.DatatypeConfigurationException ;
 import javax.xml.datatype.DatatypeFactory ;
@@ -75,7 +76,6 @@ import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.nodevalue.* ;
 import org.apache.jena.sparql.function.FunctionEnv ;
 import org.apache.jena.sparql.graph.NodeConst ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 import org.apache.jena.sparql.util.* ;
 import org.apache.jena.vocabulary.RDF ;
@@ -468,10 +468,10 @@ public abstract class NodeValue extends ExprNode
     }
     
     @Override
-    public Expr applyNodeTransform(NodeTransform transform)
+    public Expr applyNodeTransform(Function<Node, Node> transform)
     { 
         Node n = asNode() ;
-        n = transform.convert(n) ;
+        n = transform.apply(n) ;
         return makeNode(n) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
index 67b016c..553202c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java
@@ -18,9 +18,10 @@
 
 package org.apache.jena.sparql.expr.aggregate;
 
+import java.util.function.Function;
+
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.expr.ExprList ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 
 /** An Aggregator is the processor for the whole result stream.
@@ -46,7 +47,7 @@ public interface Aggregator
     
     public ExprList getExprList() ;
     public Aggregator copy(ExprList exprs) ;
-    public Aggregator copyTransform(NodeTransform transform) ;
+    public Aggregator copyTransform(Function<Node, Node> transform) ;
     
     @Override
     public int hashCode() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
index cd6d76b..7fb321b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.expr.aggregate;
 import java.util.HashMap ;
 import java.util.Locale ;
 import java.util.Map ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.io.IndentedLineBuffer ;
 import org.apache.jena.graph.Node ;
@@ -29,7 +30,6 @@ import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
 import org.apache.jena.sparql.expr.NodeValue ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.serializer.SerializationContext ;
 import org.apache.jena.sparql.sse.writers.WriterExpr ;
 import org.apache.jena.sparql.util.ExprUtils ;
@@ -86,7 +86,7 @@ public abstract class AggregatorBase implements Aggregator
     public String key() {  return toPrefixString() ; }
     
     @Override
-    public final Aggregator copyTransform(NodeTransform transform)
+    public final Aggregator copyTransform(Function<Node, Node> transform)
     {
         ExprList e = getExprList() ;
         if ( e != null )

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
index 724da1e..a22da5f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java
@@ -18,12 +18,16 @@
 
 package org.apache.jena.sparql.graph;
 
-import org.apache.jena.atlas.iterator.Transform ;
+import java.util.function.Function;
+
 import org.apache.jena.graph.Node ;
 
 /** Convert nodes to nodes - Vars may need to be translated into Vars. */
-public interface NodeTransform extends Transform<Node, Node>
+/**
+ * Prefer {@link Function<Node, Node>}.
+ *
+ */
+@Deprecated
+public interface NodeTransform extends Function<Node, Node>
 {
-    @Override
-    public Node convert(Node node) ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
index f585eac..94314c2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.graph;
 import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.graph.Node ;
@@ -37,19 +38,20 @@ import org.apache.jena.sparql.engine.binding.BindingFactory ;
 import org.apache.jena.sparql.engine.binding.BindingMap ;
 import org.apache.jena.sparql.expr.Expr ;
 import org.apache.jena.sparql.expr.ExprList ;
+
 import static org.apache.jena.atlas.lib.Lib.equal ;
 
 public class NodeTransformLib
 {
     /** Do a node->node conversion of an Op - return original BGP for "no change" */
-    public static Op transform(NodeTransform nodeTransform, Op op)
+    public static Op transform(Function<Node, Node> nodeTransform, Op op)
     {
         Transform opTransform = new NodeTransformOp(nodeTransform) ; 
         return Transformer.transform(opTransform, null, op) ;   // No expr transform - we do it ourselves.
     }
     
     /** Do a node->node conversion of a BGP - return original BGP for "no change" */
-    public static BasicPattern transform(NodeTransform nodeTransform, BasicPattern pattern)  
+    public static BasicPattern transform(Function<Node, Node> nodeTransform, BasicPattern pattern)  
     {
         BasicPattern bgp2 = new BasicPattern() ;
         boolean changed = false ;
@@ -66,7 +68,7 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a QuadPattern - return original QuadPattern for "no change" */
-    public static QuadPattern transform(NodeTransform nodeTransform, QuadPattern pattern)  
+    public static QuadPattern transform(Function<Node, Node> nodeTransform, QuadPattern pattern)  
     {
         QuadPattern qp2 = new QuadPattern() ;
         boolean changed = false ;
@@ -83,18 +85,18 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a Triple - return original Triple for "no change" */
-    public static Triple transform(NodeTransform nodeTransform, Triple triple)  
+    public static Triple transform(Function<Node, Node> nodeTransform, Triple triple)  
     {
         boolean change = false ;
         Node s = triple.getSubject() ;
         Node p = triple.getPredicate() ;
         Node o = triple.getObject() ;
         
-        Node s1 = nodeTransform.convert(s) ;
+        Node s1 = nodeTransform.apply(s) ;
         if ( s1 != s ) { change = true ; s = s1 ; }
-        Node p1 = nodeTransform.convert(p) ;
+        Node p1 = nodeTransform.apply(p) ;
         if ( p1 != p ) { change = true ; p = p1 ; }
-        Node o1 = nodeTransform.convert(o) ;
+        Node o1 = nodeTransform.apply(o) ;
         if ( o1 != o ) { change = true ; o = o1 ; }
     
         if ( ! change )
@@ -103,7 +105,7 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a Quad - return original Quad for "no change" */
-    public static Quad transform(NodeTransform nodeTransform, Quad quad)  
+    public static Quad transform(Function<Node, Node> nodeTransform, Quad quad)  
     {
         boolean change = false ;
         Node s = quad.getSubject() ;
@@ -111,13 +113,13 @@ public class NodeTransformLib
         Node o = quad.getObject() ;
         Node g = quad.getGraph() ;
         
-        Node g1 = nodeTransform.convert(g) ;
+        Node g1 = nodeTransform.apply(g) ;
         if ( g1 != g ) { change = true ; g = g1 ; }
-        Node s1 = nodeTransform.convert(s) ;
+        Node s1 = nodeTransform.apply(s) ;
         if ( s1 != s ) { change = true ; s = s1 ; }
-        Node p1 = nodeTransform.convert(p) ;
+        Node p1 = nodeTransform.apply(p) ;
         if ( p1 != p ) { change = true ; p = p1 ; }
-        Node o1 = nodeTransform.convert(o) ;
+        Node o1 = nodeTransform.apply(o) ;
         if ( o1 != o ) { change = true ; o = o1 ; }
     
         if ( ! change )
@@ -125,7 +127,7 @@ public class NodeTransformLib
         return new Quad(g,s,p,o) ;
     }
     
-    public static Table transform(Table table, NodeTransform transform) {
+    public static Table transform(Table table, Function<Node, Node> transform) {
         // Non-streaming rewrite 
         List<Var> vars = transformVars(transform, table.getVars()) ;
         Iterator<Binding> iter = table.rows() ; 
@@ -138,11 +140,11 @@ public class NodeTransformLib
         return new TableData(vars, newRows) ;
     }
     
-    public static Binding transform(Binding b, NodeTransform transform) {
+    public static Binding transform(Binding b, Function<Node, Node> transform) {
         BindingMap b2 = BindingFactory.create() ;
         List<Var> vars = Iter.toList(b.vars()) ;
         for ( Var v : vars ) {
-            Var v2 = (Var)transform.convert(v) ;
+            Var v2 = (Var)transform.apply(v) ;
             b2.add(v2, b.get(v));
         }
         return b2 ;
@@ -151,7 +153,7 @@ public class NodeTransformLib
 
 
     /** Do a node->node conversion of a List&lt;Quad&gt; - return original List&lt;Quad&gt; for "no change" */
-    public static List<Quad> transformQuads(NodeTransform nodeTransform, List<Quad> quads)
+    public static List<Quad> transformQuads(Function<Node, Node> nodeTransform, List<Quad> quads)
     {
         List<Quad> x = new ArrayList<>() ;
         boolean changed = false ; 
@@ -168,14 +170,14 @@ public class NodeTransformLib
     }
 
     /** Do a node->node conversion of a VarExprList - return original VarExprList for "no change" */
-    public static VarExprList transform(NodeTransform nodeTransform, VarExprList varExprList)
+    public static VarExprList transform(Function<Node, Node> nodeTransform, VarExprList varExprList)
     {
         VarExprList varExprList2 = new VarExprList() ;
         boolean changed = false ;
         for ( Var v : varExprList.getVars() )
         {
             Expr expr = varExprList.getExpr(v) ;
-            Var v2 = (Var)nodeTransform.convert(v) ;
+            Var v2 = (Var)nodeTransform.apply(v) ;
             Expr expr2 = ( expr != null ) ? transform(nodeTransform, expr) : null ;
             
             if ( ! equal(v, v2) || ! equal(expr, expr2) )
@@ -187,13 +189,13 @@ public class NodeTransformLib
         return varExprList2 ;
     }
 
-    public static List<Var> transformVars(NodeTransform nodeTransform, List<Var> varList)
+    public static List<Var> transformVars(Function<Node, Node> nodeTransform, List<Var> varList)
     {
         List<Var> varList2 = new ArrayList<>(varList.size()) ;
         boolean changed = false ;
         for ( Var v : varList )
         {
-            Var v2 = (Var)nodeTransform.convert(v) ;
+            Var v2 = (Var)nodeTransform.apply(v) ;
             varList2.add(v2) ;
             if ( !equal(v, v2) )
                 changed = true ;
@@ -203,7 +205,7 @@ public class NodeTransformLib
         return varList2 ;
     }
 
-    public static ExprList transform(NodeTransform nodeTransform, ExprList exprList)
+    public static ExprList transform(Function<Node, Node> nodeTransform, ExprList exprList)
     {
           ExprList exprList2 = new ExprList() ;
           boolean changed = false ;
@@ -218,12 +220,12 @@ public class NodeTransformLib
           return exprList2 ;
     }
 
-    public static Expr transform(NodeTransform nodeTransform, Expr expr)
+    public static Expr transform(Function<Node, Node> nodeTransform, Expr expr)
     {
         return expr.applyNodeTransform(nodeTransform) ;
     }
 
-    public static List<SortCondition> transform(NodeTransform nodeTransform, List<SortCondition> conditions)
+    public static List<SortCondition> transform(Function<Node, Node> nodeTransform, List<SortCondition> conditions)
     {
         List<SortCondition> conditions2 = new ArrayList<>() ;
         boolean same = true ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
index a9f1945..d62d176 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
@@ -20,6 +20,7 @@ package org.apache.jena.sparql.graph;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -50,8 +51,8 @@ class NodeTransformOp extends TransformCopy
     // Not:
     //   Conditional (no expression)
     
-    private final NodeTransform transform ;
-    NodeTransformOp(NodeTransform transform)
+    private final Function<Node, Node> transform ;
+    NodeTransformOp(Function<Node, Node> transform)
     {
         this.transform = transform ;
     }
@@ -85,9 +86,9 @@ class NodeTransformOp extends TransformCopy
     { 
         TriplePath tp = opPath.getTriplePath() ;
         Node s = tp.getSubject() ;
-        Node s1 = transform.convert(s) ;
+        Node s1 = transform.apply(s) ;
         Node o = tp.getObject() ;
-        Node o1 = transform.convert(o) ;
+        Node o1 = transform.apply(o) ;
         
         if ( s1 == s && o1 == o )
             // No change.
@@ -111,7 +112,7 @@ class NodeTransformOp extends TransformCopy
         // The internal representation is (graph, BGP)
         BasicPattern bgp2 = NodeTransformLib.transform(transform, opQuadPattern.getBasicPattern()) ;
         Node g2 = opQuadPattern.getGraphNode() ;
-        g2 = transform.convert(g2) ;
+        g2 = transform.apply(g2) ;
         
         if ( g2 == opQuadPattern.getGraphNode() && bgp2 == opQuadPattern.getBasicPattern() )
             return super.transform(opQuadPattern) ;
@@ -120,7 +121,7 @@ class NodeTransformOp extends TransformCopy
     
     @Override public Op transform(OpGraph opGraph, Op subOp)
     {
-        Node g2 = transform.convert(opGraph.getNode()) ;
+        Node g2 = transform.apply(opGraph.getNode()) ;
         if ( g2 == opGraph.getNode() )
             return super.transform(opGraph, subOp) ;
         return new OpGraph(g2, subOp) ;
@@ -128,7 +129,7 @@ class NodeTransformOp extends TransformCopy
     
     @Override public Op transform(OpDatasetNames opDatasetNames)
     {
-        Node g2 = transform.convert(opDatasetNames.getGraphNode()) ;
+        Node g2 = transform.apply(opDatasetNames.getGraphNode()) ;
         if ( g2 == opDatasetNames.getGraphNode() )
             return super.transform(opDatasetNames) ;
         return new OpDatasetNames(g2) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
index 72abe48..85ab116 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java
@@ -20,14 +20,14 @@ package org.apache.jena.sparql.modify;
 
 import java.util.HashMap ;
 import java.util.Map ;
+import java.util.function.Function;
 
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQConstants ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.core.VarAlloc ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
-public class NodeTransformBNodesToVariables implements NodeTransform
+public class NodeTransformBNodesToVariables implements Function<Node, Node>
 {
     private VarAlloc varAlloc = new VarAlloc(ARQConstants.allocVarBNodeToVar) ;
     private Map<Node, Var> mapping ;
@@ -38,7 +38,7 @@ public class NodeTransformBNodesToVariables implements NodeTransform
     }
 
     @Override
-    public Node convert(Node node)
+    public Node apply(Node node)
     {
         if ( ! node.isBlank() )
             return node ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/modify/TemplateLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/TemplateLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/TemplateLib.java
index 99f9b31..63b5cb4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/TemplateLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/TemplateLib.java
@@ -19,9 +19,10 @@
 package org.apache.jena.sparql.modify;
 
 import java.util.* ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
+import org.apache.jena.ext.com.google.common.collect.Iterators;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.graph.Triple ;
@@ -55,28 +56,22 @@ public class TemplateLib
         // The default graph has been set to something else.
         if ( dftGraph != null )
         {
-            Transform<Quad, Quad> nt = new Transform<Quad, Quad>() {
-                @Override
-                public Quad convert(Quad quad)
-                {
-                    if ( ! quad.isDefaultGraph() ) return quad ;
-                    
-                    return new Quad(dftGraph, quad.getSubject(), quad.getPredicate(), quad.getObject()) ;
-                }
-            };
-            quads = Iter.map(quads, nt) ;
-        }
+			quads = Iter
+					.map(quads,
+							q -> (!q.isDefaultGraph()) ? q :
+							new Quad(dftGraph, q.getSubject(), q.getPredicate(), q.getObject()));
+		}
         return quads;
     }
     
     /** Substitute into triple patterns */
     public static Iterator<Triple> calcTriples(final List<Triple> triples, Iterator<Binding> bindings)
     {
-        return Iter.mapMany(bindings, new Transform<Binding, Iterator<Triple>>()
+        return Iterators.concat(Iter.map(bindings, new Function<Binding, Iterator<Triple>>()
         {
             Map<Node, Node> bNodeMap = new HashMap<>() ;
             @Override
-            public Iterator<Triple> convert(final Binding b)
+            public Iterator<Triple> apply(final Binding b)
             {
                 // Iteration is a new mapping of bnodes. 
                 bNodeMap.clear() ;
@@ -94,17 +89,17 @@ public class TemplateLib
                 }
                 return tripleList.iterator();
             }
-        });
+        }));
     }
     
     /** Substitute into quad patterns */
     public static Iterator<Quad> calcQuads(final List<Quad> quads, Iterator<Binding> bindings)
     {
-        return Iter.mapMany(bindings, new Transform<Binding, Iterator<Quad>>()
+        return Iterators.concat(Iter.map(bindings, new Function<Binding, Iterator<Quad>>()
         {
             Map<Node, Node> bNodeMap = new HashMap<>() ;
             @Override
-            public Iterator<Quad> convert(final Binding b)
+            public Iterator<Quad> apply(final Binding b)
             {
                 // Iteration is a new mapping of bnodes. 
                 bNodeMap.clear() ;
@@ -122,7 +117,7 @@ public class TemplateLib
                 }
                 return quadList.iterator();
             }
-        });
+        }));
     }
 
     /** Substitute into a quad, with rewriting of bNodes */ 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
index f0af38f..e97a796 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
@@ -22,6 +22,7 @@ import static org.apache.jena.sparql.modify.TemplateLib.template ;
 
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.data.BagFactory ;
 import org.apache.jena.atlas.data.DataBag ;
@@ -50,7 +51,6 @@ import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.engine.binding.BindingRoot ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 import org.apache.jena.sparql.graph.GraphOps ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.graph.NodeTransformLib ;
 import org.apache.jena.sparql.modify.request.* ;
 import org.apache.jena.sparql.syntax.Element ;
@@ -474,7 +474,7 @@ public class UpdateEngineWorker implements UpdateVisitor
     
     protected static List<Quad> unused_convertBNodesToVariables(List<Quad> quads)
     {
-        NodeTransform bnodesToVariables = new NodeTransformBNodesToVariables() ;
+    		Function<Node, Node> bnodesToVariables = new NodeTransformBNodesToVariables() ;
         return NodeTransformLib.transformQuads(bnodesToVariables, quads) ;
     }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
index b36ed43..c2db208 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/path/PathLib.java
@@ -21,8 +21,8 @@ package org.apache.jena.sparql.path;
 import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Predicate;
 
-import org.apache.jena.atlas.iterator.Filter ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Graph ;
@@ -247,7 +247,7 @@ public class PathLib
         if ( ! subject.isConcrete() || !object.isConcrete() )
             throw new ARQInternalErrorException("Non concrete node for existsPath evaluation") ;
         Iterator<Node> iter = PathEval.eval(graph, subject, path, execCxt.getContext()) ;
-        Filter<Node> filter = new Filter<Node>() { @Override public boolean accept(Node node) { return Lib.equal(node,  object) ; } } ; 
+        Predicate<Node> filter = node -> Lib.equal(node,  object); 
         // See if we got to the node we're interested in finishing at.
         iter = Iter.filter(iter, filter) ;
         long x = Iter.count(iter) ; 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEngine.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEngine.java b/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEngine.java
index 6497bb4..9df5c10 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEngine.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEngine.java
@@ -22,9 +22,7 @@ import java.util.ArrayList ;
 import java.util.Collection ;
 import java.util.Iterator ;
 import java.util.List ;
-
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -100,10 +98,10 @@ abstract public class PathEngine
         Iterator<Node> iter2 = null ;
         if ( direction() ) {
             Iter<Triple> iter1 = Iter.iter(graphFind(node, property, Node.ANY)) ;
-            iter2 = iter1.map(PathEngine.selectObject) ;
+            iter2 = iter1.map(Triple::getObject) ;
         } else {
             Iter<Triple> iter1 = Iter.iter(graphFind(Node.ANY, property, node)) ;
-            iter2 = iter1.map(PathEngine.selectSubject) ;
+            iter2 = iter1.map(Triple::getSubject) ;
         }
 
         return iter2 ;
@@ -151,30 +149,15 @@ abstract public class PathEngine
         return (x <= 0) ? x : x - 1 ;
     }
 
-    protected static Transform<Triple, Node> selectSubject = new Transform<Triple, Node>() {
-        @Override
-        public Node convert(Triple triple) { return triple.getSubject() ; }
-    } ;
-    
-    protected static Transform<Triple, Node> selectPredicate = new Transform<Triple, Node>() {
-        @Override
-        public Node convert(Triple triple) { return triple.getPredicate() ; }
-    } ;
-    
-    protected static Transform<Triple, Node> selectObject = new Transform<Triple, Node>() {
-        @Override
-        public Node convert(Triple triple) { return triple.getObject() ; }
-    } ;
-
     protected Iterator<Node> stepExcludeForwards(Node node, List<Node> excludedNodes) {
         Iter<Triple> iter1 = forwardLinks(node, excludedNodes) ;
-        Iter<Node> r1 = iter1.map(selectObject) ;
+        Iter<Node> r1 = iter1.map(Triple::getObject) ;
         return r1 ;
     }
 
     protected Iterator<Node> stepExcludeBackwards(Node node, List<Node> excludedNodes) {
         Iter<Triple> iter1 = backwardLinks(node, excludedNodes) ;
-        Iter<Node> r1 = iter1.map(selectSubject) ;
+        Iter<Node> r1 = iter1.map(Triple::getSubject) ;
         return r1 ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEvaluator.java b/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEvaluator.java
index 3399dec..242cf9a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEvaluator.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/path/eval/PathEvaluator.java
@@ -20,8 +20,8 @@ package org.apache.jena.sparql.path.eval ;
 
 import java.util.Collection ;
 import java.util.Iterator ;
+import java.util.function.Predicate;
 
-import org.apache.jena.atlas.iterator.Filter ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
@@ -164,7 +164,7 @@ final class PathEvaluator implements PathVisitor
     // Other operations can produce duplicates and so may be executed in
     // different ways depending on cardibnality requirements.
 
-    protected static class FilterExclude implements Filter<Triple>
+    protected static class FilterExclude implements Predicate<Triple>
     {
         private Collection<Node> excludes ;
 
@@ -173,7 +173,7 @@ final class PathEvaluator implements PathVisitor
         }
 
         @Override
-        public boolean accept(Triple triple) {
+        public boolean test(Triple triple) {
             return !excludes.contains(triple.getPredicate()) ;
         }
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
index 126728c..86f9331 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
@@ -22,7 +22,6 @@ import java.util.Arrays ;
 import java.util.Iterator ;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.StrUtils ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
@@ -61,13 +60,10 @@ public class strSplit extends PFuncSimpleAndList
         
         // StrUtils will also trim whitespace
         String[] tokens = StrUtils.split(s, regex);
-        Iterator<Binding> it = Iter.map(Arrays.asList(tokens).iterator(), new Transform<String,Binding>() {
-            @Override
-            public Binding convert(String item)
-            {
-                return BindingFactory.binding(binding, subjectVar, NodeFactory.createLiteral(item)) ;
-            }
-        });
+		Iterator<Binding> it = Iter.map(
+				Arrays.asList(tokens).iterator(),
+				item -> BindingFactory.binding(binding, subjectVar,
+						NodeFactory.createLiteral(item)));
         return new QueryIterPlainWrapper(it, execCxt);
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/resultset/CSVInput.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/CSVInput.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/CSVInput.java
index 7d6487b..43f6c65 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/CSVInput.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/CSVInput.java
@@ -22,10 +22,10 @@ import java.io.InputStream ;
 import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.csv.CSVParser ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.logging.FmtLog ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
@@ -69,10 +69,10 @@ public class CSVInput
         CSVParser parser = CSVParser.create(in) ;
         final List<Var> vars = vars(parser) ;
         List<String> varNames = Var.varNames(vars) ;
-        Transform<List<String>, Binding> transform = new Transform<List<String>, Binding>(){
+        Function<List<String>, Binding> transform = new Function<List<String>, Binding>(){
             private int count = 1 ;
             @Override
-            public Binding convert(List<String> row) {
+            public Binding apply(List<String> row) {
                 if ( row.size() != vars.size() )
                     FmtLog.warn(log, "Row %d: Length=%d: expected=%d", count, row.size(), vars.size()) ;
                 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
index c11a38c..99413a5 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java
@@ -19,9 +19,7 @@
 package org.apache.jena.sparql.resultset;
 
 import java.util.* ;
-
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.query.* ;
@@ -230,7 +228,7 @@ public class ResultSetCompare
     }
 
     static private List<Binding> convert(ResultSet rs) {
-        return Iter.iter(rs).map(qs2b).toList() ;
+        return Iter.iter(rs).map(item -> BindingUtils.asBinding(item)).toList() ;
     }
     
     
@@ -299,14 +297,6 @@ public class ResultSetCompare
         }
         return true ;
     }
-
-    private static Transform<QuerySolution, Binding> qs2b = new Transform<QuerySolution, Binding> () {
-        @Override
-        public Binding convert(QuerySolution item)
-        {
-            return BindingUtils.asBinding(item) ;
-        }
-    } ;
     
     public static class BNodeIso implements EqualityTest
     {

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/util/ModelUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/ModelUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/ModelUtils.java
index 9738b47..48ee0c9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/ModelUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/ModelUtils.java
@@ -22,7 +22,6 @@ import java.util.Iterator ;
 
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.iterator.IteratorResourceClosing ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Closeable ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -101,14 +100,7 @@ public class ModelUtils
     
     public static StmtIterator triplesToStatements(final Iterator<Triple> it, final Model refModel)
     {
-        return new StmtIteratorImpl(Iter.map(it, new Transform<Triple,Statement>()
-        {
-            @Override
-            public Statement convert(Triple item)
-            {
-                return refModel.asStatement(item);
-            }
-        }))
+        return new StmtIteratorImpl(Iter.map(it, refModel::asStatement))
         {
             // Make sure to close the incoming iterator
             @Override
@@ -128,14 +120,7 @@ public class ModelUtils
     
     public static Iterator<Triple> statementsToTriples(final Iterator<Statement> it)
     {
-        return new IteratorResourceClosing<>(Iter.map(it, new Transform<Statement,Triple>()
-        {
-            @Override
-            public Triple convert(Statement item)
-            {
-                return item.asTriple();
-            }
-        }),
+        return new IteratorResourceClosing<>(Iter.map(it, Statement::asTriple),
         new Closeable()
         {
             @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
index d1dee93..fbc01b4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
@@ -24,10 +24,8 @@ import java.util.HashSet ;
 import java.util.Iterator ;
 import java.util.List ;
 import java.util.Set ;
-
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.iterator.IteratorConcat ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
@@ -139,13 +137,7 @@ public class GraphList
                 return Iter.nullIterator() ;
         }
         List<Node> x = members(gn) ;
-        Transform<Node, Triple> transform = new Transform<Node, Triple>() {
-            @Override
-            public Triple convert(Node obj) {
-                return Triple.create(s, ListPFunction.nListMember, obj) ;
-            }
-        } ;
-        return Iter.map(x.iterator(), transform) ;
+        return Iter.map(x.iterator(), t -> Triple.create(s, ListPFunction.nListMember, t)) ;
     }
 
     private static boolean isAny(Node x) {
@@ -354,8 +346,6 @@ public class GraphList
 
     private static GNode next(GNode gnode) { return new GNode(gnode, cdr(gnode)) ; }
 
-    private static Node value(GNode gnode) { return car(gnode) ; }
-
     public static boolean isListNode (GNode gnode)
     { return gnode.node.equals(NIL) || isCons(gnode) ; }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/test/java/org/apache/jena/riot/process/TestNormalization.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/process/TestNormalization.java b/jena-arq/src/test/java/org/apache/jena/riot/process/TestNormalization.java
index 1d62f2a..20cf455 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/process/TestNormalization.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/process/TestNormalization.java
@@ -103,7 +103,7 @@ public class TestNormalization extends BaseTest
         Node n1 = NodeFactoryExtra.parseNode(input) ;
         assertTrue("Invalid lexical form", n1.getLiteralDatatype().isValid(n1.getLiteralLexicalForm()));
         
-        Node n2 = CanonicalizeLiteral.get().convert(n1) ;
+        Node n2 = CanonicalizeLiteral.get().apply(n1) ;
         Node n3 = NodeFactoryExtra.parseNode(expected) ;
         assertEquals("Invalid canonicalization (lex)", n3.getLiteralLexicalForm(), n2.getLiteralLexicalForm()) ;
         assertEquals("Invalid canonicalization (node)", n3, n2) ;
@@ -115,7 +115,7 @@ public class TestNormalization extends BaseTest
     private static void normalizeLang(String input, String expected, boolean correct)
     {
         Node n1 = NodeFactoryExtra.parseNode(input) ;
-        Node n2 = CanonicalizeLiteral.get().convert(n1) ;
+        Node n2 = CanonicalizeLiteral.get().apply(n1) ;
         Node n3 = NodeFactoryExtra.parseNode(expected) ;
         if ( correct )
         {


[2/8] jena git commit: Using Java 8 types in o.a.j.atlas

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
index ff87bcc..192953f 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
@@ -21,8 +21,6 @@ package org.apache.jena.riot.thrift;
 import java.io.ByteArrayInputStream ;
 import java.io.ByteArrayOutputStream ;
 import java.util.Iterator ;
-
-import org.apache.jena.atlas.iterator.Filter ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.atlas.lib.StrUtils ;
@@ -130,7 +128,7 @@ public class TestStreamRDFThrift extends BaseTest {
         boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ;
         assertTrue(b) ;
         // Stronger - same bNode and same as in original data.
-        Node obj = Iter.first(dsg1.listGraphNodes(), filterBlankNode) ;
+        Node obj = Iter.first(dsg1.listGraphNodes(), Node::isBlank) ;
         termAsObject(dsg1, obj) ;
     }
 
@@ -149,7 +147,7 @@ public class TestStreamRDFThrift extends BaseTest {
         boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ;
         assertTrue(b) ;
         // Stronger - same bNode and same as in original data.
-        Node obj = Iter.first(dsg1.listGraphNodes(), filterBlankNode) ;
+        Node obj = Iter.first(dsg1.listGraphNodes(), Node::isBlank) ;
         termAsObject(dsg1, obj) ;
     }
     
@@ -174,13 +172,6 @@ public class TestStreamRDFThrift extends BaseTest {
         fail("Failed to find "+term) ;
     }
     
-    static Filter<Node> filterBlankNode = new Filter<Node>() {
-        @Override
-        public boolean accept(Node item) {
-            return item.isBlank() ;
-        }
-    } ;
-    
     // ** Java8
 //    public static <T> Stream<T> stream(Iterator<? extends T> iterator) {
 //        int characteristics = Spliterator.ORDERED | Spliterator.IMMUTABLE;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
index de2630e..d9c14ab 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Action.java
@@ -18,7 +18,12 @@
 
 package org.apache.jena.atlas.iterator;
 
-public interface Action<T>
+import java.util.function.Consumer;
+
+/**
+ * Prefer {@link Consumer}
+ */
+@Deprecated
+public interface Action<T> extends Consumer<T>
 {
-    public void apply(T item) ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java
index 20f837c..1ec0354 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionCount.java
@@ -18,13 +18,15 @@
 
 package org.apache.jena.atlas.iterator;
 
+import java.util.function.Consumer;
 
-public class ActionCount<T> implements Action<T>
+
+public class ActionCount<T> implements Consumer<T>
 {
     private long count = 0 ;
     
     @Override
-    public void apply(T item)
+    public void accept(T item)
     { count++ ; }
     
     public long getCount() { return count ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java
deleted file mode 100644
index d05b279..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/ActionNothing.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.iterator;
-
-
-public class ActionNothing<T> implements Action<T>
-{
-    @Override
-    public void apply(T item)   { }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
index 5d427c5..689f5bc 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Filter.java
@@ -18,5 +18,11 @@
 
 package org.apache.jena.atlas.iterator;
 
+import java.util.function.Predicate;
+
+/**
+ * Prefer {@link Predicate}.
+ */
 @FunctionalInterface
-public interface Filter <T> { boolean accept(T item) ; }
+@Deprecated
+public interface Filter <T> extends Predicate<T>{  }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
index 3beb832..e2bc4b4 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterDistinctAdjacent.java
@@ -18,17 +18,17 @@
 
 package org.apache.jena.atlas.iterator;
 
+import java.util.function.Predicate;
+
 import org.apache.jena.atlas.lib.Lib ;
 
-public class FilterDistinctAdjacent<T> implements Filter<T>
+public class FilterDistinctAdjacent<T> implements Predicate<T>
 {
     private boolean isSet = false ;
     private T last = null ; 
     
-    public FilterDistinctAdjacent() { }
-    
     @Override
-    public boolean accept(T item)
+    public boolean test(T item)
     {
         if ( isSet && Lib.equal(last, item) )
             return false ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java
deleted file mode 100644
index 21cd471..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterOutNulls.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.iterator;
-
-
-public class FilterOutNulls<T> implements Filter<T>
-{
-    public FilterOutNulls() { }
-    
-    @Override
-    public boolean accept(T item)
-    {
-        return item != null ;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java
index 479d93f..c4d5e86 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterStack.java
@@ -18,24 +18,26 @@
 
 package org.apache.jena.atlas.iterator;
 
+import java.util.function.Predicate;
+
 /**
  * Add a filter to a chain - the original filter is called after this new sub-filter.
  */
-public abstract class FilterStack<T> implements  Filter<T>
+public abstract class FilterStack<T> implements  Predicate<T>
 {
-    private final Filter<T> other ;
+    private final Predicate<T> other ;
     private final boolean subFilterLast ;
     
-    public FilterStack(Filter<T> other) { this(other, false) ; }
+    public FilterStack(Predicate<T> other) { this(other, false) ; }
     
-    public FilterStack(Filter<T> other, boolean callOldFilterFirst)
+    public FilterStack(Predicate<T> other, boolean callOldFilterFirst)
     {
         this.other = other ;
         this.subFilterLast = callOldFilterFirst ;
     }
    
     @Override
-    public final boolean accept(T item)
+    public final boolean test(T item)
     {
         if ( subFilterLast )
             return acceptAdditionaOther(item) ;
@@ -48,7 +50,7 @@ public abstract class FilterStack<T> implements  Filter<T>
         if ( ! acceptAdditional(item) )
             return false ;
         
-        if ( other != null && ! other.accept(item) )
+        if ( other != null && ! other.test(item) )
             return false ;
         
         return true ;
@@ -56,7 +58,7 @@ public abstract class FilterStack<T> implements  Filter<T>
 
     private boolean acceptOtherAdditional(T item)
     {
-        if ( other != null && ! other.accept(item) )
+        if ( other != null && ! other.test(item) )
             return false ;
         return acceptAdditional(item) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java
index 2b2a957..4f21072 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/FilterUnique.java
@@ -20,20 +20,16 @@ package org.apache.jena.atlas.iterator;
 
 import java.util.HashSet ;
 import java.util.Set ;
+import java.util.function.Predicate;
 
-public class FilterUnique<T> implements Filter<T>
+public class FilterUnique<T> implements Predicate<T>
 {
     private Set<T> seen = new HashSet<>() ;
     
-    public FilterUnique() { }
-    
     @Override
-    public boolean accept(T item)
+    public boolean test(T item)
     {
-        if ( seen.contains(item) )
-            return false ;
-        seen.add(item) ;
-        return true ;
+        return seen.add(item) ;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
index 8aec2ea..fc0a534 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
@@ -20,10 +20,12 @@ package org.apache.jena.atlas.iterator ;
 
 import java.io.PrintStream ;
 import java.util.* ;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import java.util.stream.Stream ;
 import java.util.stream.StreamSupport ;
 
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Closeable ;
 import org.apache.jena.atlas.lib.Sink ;
 
@@ -182,27 +184,20 @@ public class Iter<T> implements Iterator<T> {
 //        apply(stream.iterator(), action) ;
 //    }
 
-    public static <T> void apply(Iterator<? extends T> stream, Action<T> action) {
+    public static <T> void apply(Iterator<? extends T> stream, Consumer<T> action) {
         for (; stream.hasNext();) {
             T item = stream.next() ;
-            action.apply(item) ;
+            action.accept(item) ;
         }
     }
 
-    // -- Map specific apply. No results - do immediately.
-
-    public static <K, V> void apply(Map<K, V> map, ActionKeyValue<K, V> action) {
-        for (Map.Entry<K, V> entry : map.entrySet())
-            action.apply(entry.getKey(), entry.getValue()) ;
-    }
-
     // ---- Filter
 
 //    public static <T> Iterator<T> filter(Iterable<? extends T> stream, Filter<T> filter) {
 //        return filter(stream.iterator(), filter) ;
 //    }
 
-    public static <T> Iterator<T> filter(final Iterator<? extends T> stream, final Filter<T> filter) {
+    public static <T> Iterator<T> filter(final Iterator<? extends T> stream, final Predicate<T> filter) {
         final Iterator<T> iter = new Iterator<T>() {
 
             boolean finished     = false ;
@@ -219,7 +214,7 @@ public class Iter<T> implements Iterator<T> {
                         break ;
                     }
                     T nextItem = stream.next() ;
-                    if ( filter.accept(nextItem) ) {
+                    if ( filter.test(nextItem) ) {
                         slot = nextItem ;
                         slotOccupied = true ;
                         break ;
@@ -246,29 +241,12 @@ public class Iter<T> implements Iterator<T> {
         return iter ;
     }
 
-    private static class InvertedFilter<T> implements Filter<T> {
-        public static <T> Filter<T> invert(Filter<T> filter) {
-            return new InvertedFilter<>(filter) ;
-        }
-        private Filter<T> baseFilter ;
-
-        private InvertedFilter(Filter<T> baseFilter) {
-            this.baseFilter = baseFilter ;
-        }
-
-        @Override
-        public boolean accept(T item) {
-            return !baseFilter.accept(item) ;
-        }
-    }
-
 //    public static <T> Iterator<T> notFilter(Iterable<? extends T> stream, Filter<T> filter) {
 //        return notFilter(stream.iterator(), filter) ;
 //    }
 
-    public static <T> Iterator<T> notFilter(final Iterator<? extends T> stream, final Filter<T> filter) {
-        Filter<T> flippedFilter = InvertedFilter.invert(filter) ;
-        return filter(stream, flippedFilter) ;
+    public static <T> Iterator<T> notFilter(final Iterator<? extends T> stream, final Predicate<T> filter) {
+        return filter(stream, filter.negate()) ;
     }
 
     // Filter-related
@@ -288,10 +266,10 @@ public class Iter<T> implements Iterator<T> {
      * Return true if every element of stream passes the filter (reads the
      * stream until the first element not passing the filter)
      */
-    public static <T> boolean every(Iterator<? extends T> stream, Filter<T> filter) {
+    public static <T> boolean every(Iterator<? extends T> stream, Predicate<T> filter) {
         for (; stream.hasNext();) {
             T item = stream.next() ;
-            if ( !filter.accept(item) )
+            if ( !filter.test(item) )
                 return false ;
         }
         return true ;
@@ -312,10 +290,10 @@ public class Iter<T> implements Iterator<T> {
      * Return true if one or more elements of stream passes the filter (reads
      * the stream to first element passing the filter)
      */
-    public static <T> boolean some(Iterator<? extends T> stream, Filter<T> filter) {
+    public static <T> boolean some(Iterator<? extends T> stream, Predicate<T> filter) {
         for (; stream.hasNext();) {
             T item = stream.next() ;
-            if ( filter.accept(item) )
+            if ( filter.test(item) )
                 return true ;
         }
         return false ;
@@ -327,7 +305,7 @@ public class Iter<T> implements Iterator<T> {
 //        return map(stream.iterator(), converter) ;
 //    }
 
-    public static <T, R> Iterator<R> map(final Iterator<? extends T> stream, final Transform<T, R> converter) {
+    public static <T, R> Iterator<R> map(final Iterator<? extends T> stream, final Function<T, R> converter) {
         final Iterator<R> iter = new Iterator<R>() {
             @Override
             public boolean hasNext() {
@@ -336,7 +314,7 @@ public class Iter<T> implements Iterator<T> {
 
             @Override
             public R next() {
-                return converter.convert(stream.next()) ;
+                return converter.apply(stream.next()) ;
             }
 
             @Override
@@ -347,68 +325,14 @@ public class Iter<T> implements Iterator<T> {
         return iter ;
     }
 
-    public static <T, R> List<R> map(List<? extends T> list, Transform<T, R> converter) {
+    public static <T, R> List<R> map(List<? extends T> list, Function<T, R> converter) {
         return toList(map(list.iterator(), converter)) ;
     }
 
-    /**
-     * Projects each element of a sequence to an Iterator&lt;R&gt; and flattens
-     * the resulting sequences into one sequence.
-     */
-    public static <T, R> Iterator<R> mapMany(final Iterator<? extends T> stream,
-                                             final Transform<? super T, Iterator<R>> converter) {
-        final Iterator<R> iter = new Iterator<R>() {
-
-            private Iterator<? extends R> it = null ; // Iterator for the
-                                                      // current element of
-                                                      // stream.
-
-            @Override
-            public boolean hasNext() {
-                if ( it != null && it.hasNext() )
-                    // Element of the current iterator.
-                    return true ;
-                // Start or current iterator has ended.
-                it = null ;
-
-                // Need to move to next non-empty iterator of the stream.
-                while (stream.hasNext()) {
-                    it = converter.convert(stream.next()) ;
-                    if ( it.hasNext() )
-                        // There is something.
-                        return true ;
-                }
-                it = null ;
-                // Stream ran out.
-                return false ;
-            }
-
-            @Override
-            public R next() {
-                if ( !hasNext() )
-                    throw new NoSuchElementException() ;
-                // "it" is always left with something to yield if hashNext is
-                // true.
-                return it.next() ;
-            }
-
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException("mapMany.remove") ;
-            }
-        } ;
-
-        return iter ;
-    }
-
 //    public static <T, R> Iterator<R> mapMany(Iterable<? extends T> stream, Transform<T, Iterator<R>> converter) {
 //        return mapMany(stream.iterator(), converter) ;
 //    }
 
-    public static <T, R> List<R> mapMany(List<? extends T> list, Transform<T, Iterator<R>> converter) {
-        return toList(mapMany(list.iterator(), converter)) ;
-    }
-
 //    /**
 //     * Apply an action to everything in stream, yielding a stream of the same
 //     * items
@@ -421,7 +345,7 @@ public class Iter<T> implements Iterator<T> {
      * Apply an action to everything in stream, yielding a stream of the same
      * items
      */
-    public static <T> Iterator<T> operate(final Iterator<? extends T> stream, final Action<T> action) {
+    public static <T> Iterator<T> operate(final Iterator<? extends T> stream, final Consumer<T> action) {
         final Iterator<T> iter = new Iterator<T>() {
             @Override
             public boolean hasNext() {
@@ -431,7 +355,7 @@ public class Iter<T> implements Iterator<T> {
             @Override
             public T next() {
                 T t = stream.next() ;
-                action.apply(t) ;
+                action.accept(t) ;
                 return t ;
             }
 
@@ -450,13 +374,7 @@ public class Iter<T> implements Iterator<T> {
 
     /** Print an iterator as it gets used - this adds a printing wrapper */
     public static <T> Iterator<T> printWrapper(final PrintStream out, final Iterator<? extends T> stream) {
-        Action<T> action = new Action<T>() {
-            @Override
-            public void apply(T item) {
-                out.println(item) ;
-            }
-        } ;
-        return Iter.operate(stream, action) ;
+        return Iter.operate(stream, out::println) ;
     }
 
 //    /** Join two iteratables
@@ -502,7 +420,7 @@ public class Iter<T> implements Iterator<T> {
 //    }
 
     public static <T> Iterator<T> removeNulls(Iterator<T> iter) {
-        return filter(iter, new FilterOutNulls<T>()) ;
+        return filter(iter, x -> x != null) ;
     }
 
     /** Take the first N elements of an iterator - stop early if too few */
@@ -667,14 +585,7 @@ public class Iter<T> implements Iterator<T> {
      */
     public static <T> Iterator<T> debug(final PrintStream out, Iterator<T> stream) {
         try { 
-            Transform<T, T> x = new Transform<T, T>() {
-                @Override
-                public T convert(T item) {
-                    out.println(item) ;
-                    return item ;
-                }
-            } ;
-            return map(stream, x) ;
+            return map(stream, item -> {out.println(item); return item;}) ;
         } finally { out.flush() ; }
     }
 
@@ -685,14 +596,7 @@ public class Iter<T> implements Iterator<T> {
 
     /** Print an iterator (destructive) */
     public static <T> void print(final PrintStream out, Iterator<T> stream) {
-        Action<T> x = new Action<T>() {
-            @Override
-            public void apply(T item) {
-                out.println(item) ;
-            }
-
-        } ;
-        apply(stream, x) ;
+        apply(stream, out::println) ;
     }
 
 //    /** Print an iterable */
@@ -782,58 +686,57 @@ public class Iter<T> implements Iterator<T> {
         return Iter.iter(iter1).append(Iter.iter(iter2)) ;
     }
 
-    public static <T> T first(Iterator<T> iter, Filter<T> filter) {
-        for (int idx = 0; iter.hasNext(); idx++) {
+    public static <T> T first(Iterator<T> iter, Predicate<T> filter) {
+        while (iter.hasNext()) {
             T t = iter.next() ;
-            if ( filter.accept(t) )
+            if ( filter.test(t) )
                 return t ;
-            // return idx ;
         }
         return null ;
     }
 
-    public static <T> T first(Collection<T> collection, Filter<T> filter) {
-        return first(collection.iterator(), filter) ;
+    public static <T> T first(Collection<T> collection, Predicate<T> filter) {
+        return collection.stream().filter(filter).findFirst().orElse(null);
     }
 
-    public static <T> int firstIndex(Iterator<T> iter, Filter<T> filter) {
+    public static <T> int firstIndex(Iterator<T> iter, Predicate<T> filter) {
         for (int idx = 0; iter.hasNext(); idx++) {
             T t = iter.next() ;
-            if ( filter.accept(t) )
+            if ( filter.test(t) )
                 return idx ;
         }
         return -1 ;
     }
 
-    public static <T> int firstIndex(Collection<T> collection, Filter<T> filter) {
+    public static <T> int firstIndex(Collection<T> collection, Predicate<T> filter) {
         return firstIndex(collection.iterator(), filter) ;
     }
 
-    public static <T> T last(Iterator<T> iter, Filter<T> filter) {
+    public static <T> T last(Iterator<T> iter, Predicate<T> filter) {
         T thing = null ;
-        for (int idx = 0; iter.hasNext(); idx++) {
+        while (iter.hasNext()) {
             T t = iter.next() ;
-            if ( filter.accept(t) )
+            if ( filter.test(t) )
                 thing = t ;
         }
         return thing ;
     }
 
-    public static <T> T last(Collection<T> collection, Filter<T> filter) {
+    public static <T> T last(Collection<T> collection, Predicate<T> filter) {
         return last(collection.iterator(), filter) ;
     }
 
-    public static <T> int lastIndex(Iterator<T> iter, Filter<T> filter) {
+    public static <T> int lastIndex(Iterator<T> iter, Predicate<T> filter) {
         int location = -1 ;
         for (int idx = 0; iter.hasNext(); idx++) {
             T t = iter.next() ;
-            if ( filter.accept(t) )
+            if ( filter.test(t) )
                 location = idx ;
         }
         return location ;
     }
 
-    public static <T> int lastIndex(Collection<T> collection, Filter<T> filter) {
+    public static <T> int lastIndex(Collection<T> collection, Predicate<T> filter) {
         return lastIndex(collection.iterator(), filter) ;
     }
 
@@ -858,39 +761,39 @@ public class Iter<T> implements Iterator<T> {
         sendToSink(iterator, sink) ;
     }
 
-    public T first(Filter<T> filter) {
+    public T first(Predicate<T> filter) {
         return first(iterator, filter) ;
     }
 
-    public int firstIndex(Filter<T> filter) {
+    public int firstIndex(Predicate<T> filter) {
         return firstIndex(iterator, filter) ;
     }
 
-    public T last(Filter<T> filter) {
+    public T last(Predicate<T> filter) {
         return last(iterator, filter) ;
     }
 
-    public int lastIndex(Filter<T> filter) {
+    public int lastIndex(Predicate<T> filter) {
         return lastIndex(iterator, filter) ;
     }
 
-    public Iter<T> filter(Filter<T> filter) {
+    public Iter<T> filter(Predicate<T> filter) {
         return iter(filter(iterator, filter)) ;
     }
 
-    public boolean every(Filter<T> filter) {
+    public boolean every(Predicate<T> filter) {
         return every(iterator, filter) ;
     }
 
-    public boolean some(Filter<T> filter) {
+    public boolean some(Predicate<T> filter) {
         return some(iterator, filter) ;
     }
 
     public Iter<T> removeNulls() {
-        return filter(new FilterOutNulls<T>()) ;
+        return filter(x -> x != null) ;
     }
 
-    public <R> Iter<R> map(Transform<T, R> converter) {
+    public <R> Iter<R> map(Function<T, R> converter) {
         return iter(map(iterator, converter)) ;
     }
 
@@ -898,7 +801,7 @@ public class Iter<T> implements Iterator<T> {
      * Apply an action to everything in the stream, yielding a stream of the
      * same items
      */
-    public Iter<T> operate(Action<T> action) {
+    public Iter<T> operate(Consumer<T> action) {
         return iter(operate(iterator, action)) ;
     }
 
@@ -906,7 +809,7 @@ public class Iter<T> implements Iterator<T> {
         return reduce(iterator, aggregator) ;
     }
 
-    public void apply(Action<T> action) {
+    public void apply(Consumer<T> action) {
         apply(iterator, action) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
index ee45935..a8cb1b2 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/IteratorArray.java
@@ -18,10 +18,16 @@
 
 package org.apache.jena.atlas.iterator;
 
+import java.util.Arrays;
 import java.util.Iterator ;
 import java.util.NoSuchElementException ;
+import java.util.Spliterator;
 
 /** Iterator over a Java base array */
+/**
+ * Prefer {@link Arrays#spliterator(Object[])} or {@link Arrays#stream(Object[])}
+ */
+@Deprecated
 public final class IteratorArray<T> implements Iterator<T>
 {
     /** Iterator over all the array elements */ 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java
deleted file mode 100644
index 3c6492e..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/MapUtils.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.iterator;
-
-import java.util.Map ;
-
-import org.apache.jena.atlas.lib.ActionKeyValue ;
-
-
-
-public class MapUtils
-{
-     // Map specific operations
-    
-    public static <K, V> void apply(Map<K, V> map, ActionKeyValue<K, V> action)
-    {
-        for ( Map.Entry<K,V> entry : map.entrySet() )
-            action.apply(entry.getKey(), entry.getValue()) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
index d5d6a0a..67fc3af 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Transform.java
@@ -18,4 +18,10 @@
 
 package org.apache.jena.atlas.iterator;
 
-public interface Transform <T, R> { R convert(T item) ; }
+import java.util.function.Function;
+
+/**
+ * Prefer {@link Function}.
+ */
+@Deprecated
+public interface Transform <T, R> extends Function<T,R>{ }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
index 894107a..12dadab 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ActionKeyValue.java
@@ -18,7 +18,12 @@
 
 package org.apache.jena.atlas.lib;
 
-public interface ActionKeyValue<KeyType, ValueType>
+import java.util.function.BiConsumer;
+
+/**
+ * Prefer {@link BiConsumer<KeyType, ValueType>}.
+ */
+@Deprecated
+public interface ActionKeyValue<KeyType, ValueType> extends BiConsumer<KeyType, ValueType>
 {
-    public void apply(KeyType key, ValueType value) ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java
index d7fa711..8ebf2d7 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Cache.java
@@ -20,6 +20,7 @@ package org.apache.jena.atlas.lib;
 
 import java.util.Iterator ;
 import java.util.concurrent.Callable ;
+import java.util.function.BiConsumer;
 
 /** A cache */
 public interface Cache<Key, Value>
@@ -52,5 +53,5 @@ public interface Cache<Key, Value>
     public long size() ;
     
     /** Register a callback - called when an object is dropped from the cache (optional operation) */ 
-    public void setDropHandler(ActionKeyValue<Key,Value> dropHandler) ;
+    public void setDropHandler(BiConsumer<Key,Value> dropHandler) ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
index f5c3d22..0f709b0 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
@@ -18,7 +18,7 @@
 
 package org.apache.jena.atlas.lib;
 
-import org.apache.jena.atlas.iterator.Action ;
+import java.util.function.Consumer;
 
 public interface CacheSet<T>
 {
@@ -30,5 +30,5 @@ public interface CacheSet<T>
     public void remove(T obj) ;
     public long size() ;
     /** Register a callback - called when an object is dropped from the cache (optional operation) */ 
-    public void setDropHandler(Action<T> dropHandler) ;
+    public void setDropHandler(Consumer<T> dropHandler) ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
index 2b6002a..e2f6dfd 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Closeable.java
@@ -21,7 +21,7 @@ package org.apache.jena.atlas.lib;
 /** Close this object.
  *  This form does not allow Exceptions (it does allow RuntimeExceptions).  
  */
-public interface Closeable
+public interface Closeable extends java.io.Closeable
 {
     public void close() ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
index 8bae6a4..759e543 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
@@ -19,34 +19,16 @@
 package org.apache.jena.atlas.lib;
 
 import java.util.Collection ;
-import java.util.Iterator ;
+import java.util.Objects;
 
 public class CollectionUtils
 {
     static public <T> void removeNulls(Collection<T> list)
-    {
-        for ( Iterator<T> iter = list.iterator() ; iter.hasNext() ; )
-        {
-            T e = iter.next() ;
-            if ( e == null )
-                iter.remove() ;
-        }
+    {	
+    		list.removeIf(Objects::isNull);
     }
     
     static public <T> boolean disjoint(Collection<T> c1, Collection<T> c2)
     {
-        if ( c2.size() < c1.size() )
-        {
-            Collection<T> t = c1 ;
-            c1 = c2 ;
-            c2 = t ;
-        }
-        
-        for ( T t : c1 )
-        {
-            if ( c2.contains(t) )
-                return false ;
-        }
-        return true ;
-    }
+		return c1.stream().noneMatch(c2::contains);
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
index 6c9c442..a866d59 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
@@ -24,6 +24,7 @@ import java.util.zip.CRC32 ;
 import java.util.zip.Checksum ;
 
 import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.ext.com.google.common.base.Objects;
 
 public class Lib
 {
@@ -35,15 +36,13 @@ public class Lib
             ((Sync)object).sync() ;
     }
     
-    /** Return true if obj1 and obj are both null or are .equals, else return false */
+    /** Return true if obj1 and obj are both null or are .equals, else return false 
+     * Prefer {@link Objects#equal(Object, Object)}
+     */
+    @Deprecated
     public static final <T> boolean equal(T obj1, T obj2)
     {
-        if ( obj1 == null )
-            return obj2 == null ;
-        // obj1 != null
-        if ( obj2 == null )
-            return false ;
-        return obj1.equals(obj2) ;
+    		return Objects.equal(obj1, obj2);
     }
     
     /** Return true if obj1 and obj are both null or are .equals, else return false */

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
index 78d591a..8315236 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
@@ -20,10 +20,9 @@ package org.apache.jena.atlas.lib;
 
 import java.util.ArrayList ;
 import java.util.List ;
-
+import java.util.function.Consumer;
 
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.iterator.Action ;
 import org.apache.jena.atlas.iterator.FilterUnique ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.logging.Log ;
@@ -101,10 +100,10 @@ public class ListUtils
     
     public static <T> void print(final IndentedWriter out, List<T> list, final String sep)
     {
-        Action<T> output = new Action<T>() {
+        Consumer<T> output = new Consumer<T>() {
             boolean first = true ;
             @Override
-            public void apply(T item)
+            public void accept(T item)
             {
                 if ( ! first ) out.print(sep) ;
                 out.print(item.toString()) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java
deleted file mode 100644
index 7999a25..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/MapUtils.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.Map ;
-
-/** Map specific functions */
-public class MapUtils
-{
-    private MapUtils() {}
-    
-    public static <K, V> void apply(Map<K, V> map, ActionKeyValue<K, V> action)
-    {
-        for ( Map.Entry<K,V> entry : map.entrySet() )
-            action.apply(entry.getKey(), entry.getValue()) ;
-    }
-    
-    public static <T> void increment(Map<T, Integer> countMap, T key)
-    { increment(countMap, key, 1) ; }
-    
-    public static <T> void increment(Map<T, Integer> countMap, T key, int incr)
-    {
-        Integer integer = countMap.get(key) ;
-        if ( integer == null ) 
-            countMap.put(key, incr) ;
-        else
-            countMap.put(key, integer+incr) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java
deleted file mode 100644
index d571fe7..0000000
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Problem.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-public class Problem extends RuntimeException
-{
-    public Problem(String msg) { super(msg) ; }
-    public Problem(String msg, Throwable th) { super(msg, th) ; }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
index f4e561d..5cc65a9 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
@@ -38,12 +38,7 @@ public class SetUtils
 
     public static <T> boolean intersectionP(Set<? extends T> s1, Set<? extends T> s2)
     {
-        for( T elt : s1 )
-        {
-            if ( s2.contains(elt) ) 
-                return true ;
-        }
-        return false ;
+    		return s1.stream().anyMatch(s2::contains);
     }
 
     public static <T> Set<T> union(Set<? extends T> s1, Set<? extends T> s2)
@@ -61,24 +56,5 @@ public class SetUtils
         s3.removeAll(s2) ;
         return s3 ;
     }
-    
-    /** Return true if s1 and s2 are disjoint */
-    public static <T> boolean isDisjoint(Set<? extends T> s1, Set<? extends T> s2)
-    {
-        Set<? extends T> x = s1 ;
-        Set<? extends T> y = s2 ;
-        if ( s1.size() < s2.size() )
-        {
-            x = s2 ;
-            y = s1 ;
-        }        
-        
-        for ( T item : x )
-        {
-            if ( y.contains(item)) 
-                return false ;
-        }
-        return true ;
-    }
 }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
index ae944a7..35a97a5 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Tuple.java
@@ -21,10 +21,9 @@ package org.apache.jena.atlas.lib ;
 import java.util.Arrays ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.IteratorArray ;
-import org.apache.jena.atlas.iterator.Transform ;
 
 /** Tuple class - tuples are immutable and must be created initialized */
 public class Tuple<T> implements Iterable<T> {
@@ -48,22 +47,13 @@ public class Tuple<T> implements Iterable<T> {
 
     // TupleLib??
     public static <T> Iterator<T> project(final int slot, Iterator<Tuple<T>> iter) {
-        Transform<Tuple<T>, T> projection = new Transform<Tuple<T>, T>() {
-            @Override
-            public T convert(Tuple<T> tuple) {
-                return tuple.get(slot) ;
-            }
-        } ;
-        return Iter.map(iter, projection) ;
+        return Iter.map(iter, t -> t.get(slot)) ;
     }
 
     public static <T> Iterator<Tuple<T>> prefix(final int prefixLength, Iterator<Tuple<T>> iter) {
-        Transform<Tuple<T>, Tuple<T>> sub = new Transform<Tuple<T>, Tuple<T>>() {
-            @Override
-            public Tuple<T> convert(Tuple<T> tuple) {
-                T[] x = ArrayUtils.copy(tuple.tuple, 0, prefixLength) ;
-                return Tuple.create(x) ;
-            }
+        Function<Tuple<T>, Tuple<T>> sub = t -> {
+                T[] x = ArrayUtils.copy(t.tuple, 0, prefixLength) ;
+                return Tuple.create(x) ;    
         } ;
         return Iter.map(iter, sub) ;
     }
@@ -100,7 +90,7 @@ public class Tuple<T> implements Iterable<T> {
 
     @Override
     public Iterator<T> iterator() {
-        return IteratorArray.create(tuple) ;
+        return Arrays.stream(tuple).iterator() ;
     }
 
     /** Return a tuple with the column mapping applied */

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java
index 00befa0..5b8b5cc 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java
@@ -20,9 +20,9 @@ package org.apache.jena.atlas.lib.cache ;
 
 import java.util.Iterator ;
 import java.util.concurrent.Callable ;
+import java.util.function.BiConsumer;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 
 /** A cache that keeps nothing */
@@ -67,6 +67,6 @@ public final class Cache0<K, V> implements Cache<K, V> {
     }
 
     @Override
-    public void setDropHandler(ActionKeyValue<K, V> dropHandler) {}
+    public void setDropHandler(BiConsumer<K, V> dropHandler) {}
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
index 38ab5c6..ffa6e0a 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
@@ -20,16 +20,16 @@ package org.apache.jena.atlas.lib.cache;
 
 import java.util.Iterator ;
 import java.util.concurrent.Callable ;
+import java.util.function.BiConsumer;
 
 import org.apache.jena.atlas.iterator.SingletonIterator ;
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 import org.apache.jena.atlas.lib.Lib ;
 
 /** A one-slot cache.*/
 public class Cache1<K, V> implements Cache<K,V>
 {
-    private ActionKeyValue<K, V> dropHandler = null ;
+    private BiConsumer<K, V> dropHandler = null ;
     private K cacheKey ;
     private V cacheValue ;
     
@@ -107,7 +107,7 @@ public class Cache1<K, V> implements Cache<K,V>
     }
 
     @Override
-    public void setDropHandler(ActionKeyValue<K, V> dropHandler)
+    public void setDropHandler(BiConsumer<K, V> dropHandler)
     {
         this.dropHandler = dropHandler ;
     }
@@ -115,7 +115,7 @@ public class Cache1<K, V> implements Cache<K,V>
     private void notifyDrop(K key, V thing)
     {
         if ( dropHandler != null && key != null )
-            dropHandler.apply(key, thing) ;
+            dropHandler.accept(key, thing) ;
     }
     
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java
index fd5959c..a25faa0 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java
@@ -21,11 +21,10 @@ package org.apache.jena.atlas.lib.cache;
 import java.util.Iterator ;
 import java.util.concurrent.Callable ;
 import java.util.concurrent.ExecutionException ;
+import java.util.function.BiConsumer;
 
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 import org.apache.jena.atlas.logging.Log ;
-
 import org.apache.jena.ext.com.google.common.cache.CacheBuilder ;
 import org.apache.jena.ext.com.google.common.cache.RemovalListener ;
 import org.apache.jena.ext.com.google.common.cache.RemovalNotification ;
@@ -34,7 +33,7 @@ import org.apache.jena.ext.com.google.common.cache.RemovalNotification ;
 final
 public class CacheGuava<K,V> implements Cache<K, V>
 {
-    private ActionKeyValue<K, V> dropHandler = null ;
+    private BiConsumer<K, V> dropHandler = null ;
     /*private*/ org.apache.jena.ext.com.google.common.cache.Cache<K,V> cache ;
 
     public CacheGuava(int size)
@@ -43,7 +42,7 @@ public class CacheGuava<K,V> implements Cache<K, V>
             @Override
             public void onRemoval(RemovalNotification<K, V> notification) {
                 if ( dropHandler != null )
-                    dropHandler.apply(notification.getKey(),
+                    dropHandler.accept(notification.getKey(),
                                       notification.getValue()) ;
             }
         } ;
@@ -112,7 +111,7 @@ public class CacheGuava<K,V> implements Cache<K, V>
     }
 
     @Override
-    public void setDropHandler(ActionKeyValue<K, V> dropHandler) {
+    public void setDropHandler(BiConsumer<K, V> dropHandler) {
         this.dropHandler = dropHandler ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java
index b3bf048..8a24d26 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java
@@ -19,9 +19,9 @@
 package org.apache.jena.atlas.lib.cache ;
 
 import java.util.Iterator ;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
 
-import org.apache.jena.atlas.iterator.Action ;
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 import org.apache.jena.atlas.lib.CacheSet ;
 
@@ -37,21 +37,21 @@ public class CacheSetImpl<T> implements CacheSet<T> {
 
     /** Callback for entries when dropped from the cache */
     @Override
-    public void setDropHandler(Action<T> dropHandler) {
+    public void setDropHandler(Consumer<T> dropHandler) {
         cacheMap.setDropHandler(new Wrapper<T>(dropHandler)) ;
     }
     
     // From map action to set action.
-    static class Wrapper<T> implements ActionKeyValue<T, Object> {
-        Action<T> dropHandler ;
+    static class Wrapper<T> implements BiConsumer<T, Object> {
+        Consumer<T> dropHandler ;
 
-        public Wrapper(Action<T> dropHandler) {
+        public Wrapper(Consumer<T> dropHandler) {
             this.dropHandler = dropHandler ;
         }
 
         @Override
-        public void apply(T key, Object value) {
-            dropHandler.apply(key) ;
+        public void accept(T key, Object value) {
+            dropHandler.accept(key) ;
         }
 
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java
index fc3a3bd..8fdda11 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.atlas.lib.cache ;
 
-import org.apache.jena.atlas.iterator.Action ;
+import java.util.function.Consumer;
+
 import org.apache.jena.atlas.lib.CacheSet ;
 
 public class CacheSetSync<T> implements CacheSet<T> {
@@ -59,7 +60,7 @@ public class CacheSetSync<T> implements CacheSet<T> {
     }
 
     @Override
-    synchronized public void setDropHandler(Action<T> dropHandler) {
+    synchronized public void setDropHandler(Consumer<T> dropHandler) {
         cache.setDropHandler(dropHandler) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java
index c11ffb0..3a36c97 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.atlas.lib.cache ;
 
-import org.apache.jena.atlas.iterator.Action ;
+import java.util.function.Consumer;
+
 import org.apache.jena.atlas.lib.CacheSet ;
 
 public class CacheSetWrapper<T> implements CacheSet<T> {
@@ -59,7 +60,7 @@ public class CacheSetWrapper<T> implements CacheSet<T> {
     }
 
     @Override
-    public void setDropHandler(Action<T> dropHandler) {
+    public void setDropHandler(Consumer<T> dropHandler) {
         cache.setDropHandler(dropHandler) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
index a33d8e2..9f889dd 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
@@ -18,13 +18,14 @@
 
 package org.apache.jena.atlas.lib.cache;
 
+import static java.util.Arrays.asList;
+
 import java.util.Arrays ;
 import java.util.Iterator ;
 import java.util.concurrent.Callable ;
+import java.util.function.BiConsumer;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.IteratorArray ;
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 
 
@@ -40,7 +41,7 @@ public class CacheSimple<K,V> implements Cache<K,V>
     private final K[] keys ;
     private final int size ;
     private int currentSize = 0 ;
-    private ActionKeyValue<K,V> dropHandler = null ;
+    private BiConsumer<K,V> dropHandler = null ;
     
     public CacheSimple(int size)
     { 
@@ -113,7 +114,7 @@ public class CacheSimple<K,V> implements Cache<K,V>
             // Drop the old K->V
             old = values[x] ;
             if ( dropHandler != null )
-                dropHandler.apply(keys[x], old) ;
+                dropHandler.accept(keys[x], old) ;
             currentSize-- ;
         }
         
@@ -142,7 +143,7 @@ public class CacheSimple<K,V> implements Cache<K,V>
     @Override
     public Iterator<K> keys()
     {
-        Iterator<K> iter = IteratorArray.create(keys) ;
+        Iterator<K> iter = asList(keys).iterator() ;
         return Iter.removeNulls(iter) ;
     }
 
@@ -154,7 +155,7 @@ public class CacheSimple<K,V> implements Cache<K,V>
 
     /** Callback for entries when dropped from the cache */
     @Override
-    public void setDropHandler(ActionKeyValue<K,V> dropHandler)
+    public void setDropHandler(BiConsumer<K,V> dropHandler)
     {
         this.dropHandler = dropHandler ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java
index e655749..ef27228 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java
@@ -19,8 +19,8 @@
 package org.apache.jena.atlas.lib.cache;
 import java.util.Iterator ;
 import java.util.concurrent.Callable ;
+import java.util.function.BiConsumer;
 
-import org.apache.jena.atlas.lib.ActionKeyValue ;
 import org.apache.jena.atlas.lib.Cache ;
 
 
@@ -56,7 +56,7 @@ public class CacheWrapper<Key,T> implements Cache<Key,T>
     public void remove(Key key)                     { cache.remove(key) ; }
 
     @Override
-    public void setDropHandler(ActionKeyValue<Key, T> dropHandler)
+    public void setDropHandler(BiConsumer<Key, T> dropHandler)
     { cache.setDropHandler(dropHandler) ; }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/main/java/org/apache/jena/base/Closeable.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/base/Closeable.java b/jena-base/src/main/java/org/apache/jena/base/Closeable.java
deleted file mode 100644
index 59a06aa..0000000
--- a/jena-base/src/main/java/org/apache/jena/base/Closeable.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.base;
-
-/** Close this object.
- *  This form does not allow Exceptions (it does allow RuntimeExceptions)  
- */
-public interface Closeable {
-    public void close() ; 
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java
index 56cf8a9..11550a1 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/iterator/TestIter.java
@@ -26,6 +26,7 @@ import java.util.ArrayList ;
 import java.util.Arrays ;
 import java.util.Iterator ;
 import java.util.List ;
+import java.util.function.Predicate;
 
 import org.junit.Test ;
 
@@ -225,97 +226,11 @@ public class TestIter
     @Test
     public void map_01()
     {
-        Iterator<String> it = Iter.map(data2.iterator(), new Transform<String,String>()
-        {
-            @Override
-            public String convert(String item)
-            {
-                return item + item;
-            }
-        });
+        Iterator<String> it = Iter.map(data2.iterator(), item -> item + item);
         test(it, "xx", "yy", "zz");
     }
-    
-    @Test
-    public void mapMany_01()
-    {
-        Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>()
-        {
-            @Override
-            public Iterator<String> convert(String item)
-            {
-                List<String> l = new ArrayList<>(2);
-                l.add(item);
-                l.add(item + item);
-                return l.iterator();
-            }
-        });
-        
-        test(it, "x", "xx", "y", "yy", "z", "zz");
-    }
-    
-    @Test
-    public void mapMany_02()
-    {
-        Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>()
-        {
-            @Override
-            public Iterator<String> convert(String item)
-            {
-                return Iter.nullIterator() ;
-            }
-        });
-        
-        assertFalse(it.hasNext()) ;
-    }
-    
-    @Test
-    public void mapMany_03()
-    {
-        Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>()
-        {
-            int count = 0 ;
-            @Override
-            public Iterator<String> convert(String item)
-            {
-                count++ ;
-                if ( count%2 == 1 )
-                    return Iter.singleton(item) ;
-                else
-                    return Iter.nullIterator() ;
-            }
-        });
-        
-        test(it, "x", "z");
-    }
-
-    @Test
-    public void mapMany_04()
-    {
-        Iterator<String> it = Iter.mapMany(data2.iterator(), new Transform<String,Iterator<String>>()
-        {
-            int count = 0 ;
-            @Override
-            public Iterator<String> convert(String item)
-            {
-                count++ ;
-                if ( count%2 == 0 )
-                    return Iter.singleton(item) ;
-                else
-                    return Iter.nullIterator() ;
-            }
-        });
-        
-        test(it, "y");
-    }
-
 	
-    Filter<String> filter = new Filter<String>() {
-        @Override
-        public boolean accept(String item)
-        {
-            return item.length() == 1 ;
-        }} ;
+    Predicate<String> filter = item -> item.length() == 1;
    
     @Test
     public void first_01()
@@ -441,14 +356,7 @@ public class TestIter
     @Test
     public void filter_02()
     {
-        Iterator<String> it = Iter.filter(data3.iterator(), new Filter<String>()
-        {
-            @Override
-            public boolean accept(String item)
-            {
-                return "x".equals(item) || "z".equals(item) ;
-            }
-        });
+        Iterator<String> it = Iter.filter(data3.iterator(), item -> "x".equals(item) || "z".equals(item));
         
         test(it, "x", "z");
     }
@@ -456,14 +364,7 @@ public class TestIter
     @Test
     public void filter_03()
     {
-        Iterator<String> it = Iter.filter(data3.iterator(), new Filter<String>()
-        {
-            @Override
-            public boolean accept(String item)
-            {
-                return (null == item) || "x".equals(item) ;
-            }
-        });
+        Iterator<String> it = Iter.filter(data3.iterator(), item -> null == item || "x".equals(item));
         
         test(it, null, "x", null, null, null, null);
     }
@@ -496,23 +397,8 @@ public class TestIter
         test(iter, "a", "b", "a") ;
     }
     
-    private static class AlwaysAcceptFilter implements Filter<Object> {
-        @Override
-        public boolean accept(Object o) {
-            return true;
-        }
-    }
-
-    private static class NeverAcceptFilter implements Filter<Object> {
-        @Override
-        public boolean accept(Object o) {
-            return false;
-        }
-    }
-
-    
     private static class AlwaysAcceptFilterStack extends FilterStack<Object> {
-        public AlwaysAcceptFilterStack(Filter<Object> f) {
+        public AlwaysAcceptFilterStack(Predicate<Object> f) {
             super(f);
         }
 
@@ -524,16 +410,16 @@ public class TestIter
 
     @Test
     public void testFilterStack_01() {
-        Filter<Object> filter = new AlwaysAcceptFilter();
+        Predicate<Object> filter = x -> true;
         FilterStack<Object> filterStack = new AlwaysAcceptFilterStack(filter);
-        assertTrue(filterStack.accept(new Object()));
+        assertTrue(filterStack.test(new Object()));
     }
     
     @Test
     public void testFilterStack_02() {
-        Filter<Object> filter = new NeverAcceptFilter();
+        Predicate<Object> filter = x -> false;
         FilterStack<Object> filterStack = new AlwaysAcceptFilterStack(filter);
-        assertFalse(filterStack.accept(new Object()));
+        assertFalse(filterStack.test(new Object()));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
index 7ac9351..84bb858 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
@@ -24,10 +24,8 @@ import static org.apache.jena.fuseki.HttpNames.paramNamedGraphURI ;
 import java.util.Arrays ;
 import java.util.Collections ;
 import java.util.List ;
-
 import javax.servlet.http.HttpServletRequest ;
 
-import org.apache.jena.atlas.iterator.Filter ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.query.Query ;
@@ -76,17 +74,9 @@ public  abstract class SPARQL_Protocol extends SPARQL_ServletBase
 
     private static List<String> removeEmptyValues(List<String> list)
     {
-        return Iter.iter(list).filter(acceptNonEmpty).toList() ;
+        return Iter.iter(list).filter(item -> item != null && item.length() != 0).toList() ;
     }
     
-    private static Filter<String> acceptNonEmpty = new Filter<String>(){ 
-        @Override
-        public boolean accept(String item)
-        {
-            return item != null && item.length() != 0 ;
-        }
-    } ;
-    
     protected static int countParamOccurences(HttpServletRequest request, String param)
     {
         String[] x = request.getParameterValues(param) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
index 4f5d5c9..2a19d03 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
@@ -24,10 +24,10 @@ import static org.apache.jena.riot.web.HttpNames.paramNamedGraphURI ;
 import java.util.Arrays ;
 import java.util.Collections ;
 import java.util.List ;
+import java.util.function.Predicate;
 
 import javax.servlet.http.HttpServletRequest ;
 
-import org.apache.jena.atlas.iterator.Filter ;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.query.Query ;
@@ -79,13 +79,7 @@ public  abstract class SPARQL_Protocol extends ActionSPARQL
         return Iter.iter(list).filter(acceptNonEmpty).toList() ;
     }
     
-    private static Filter<String> acceptNonEmpty = new Filter<String>(){ 
-        @Override
-        public boolean accept(String item)
-        {
-            return item != null && item.length() != 0 ;
-        }
-    } ;
+    private static Predicate<String> acceptNonEmpty = item -> item != null && item.length() != 0;
     
     protected static int countParamOccurences(HttpServletRequest request, String param)
     {

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
index 6206f62..6f262a5 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
@@ -18,6 +18,7 @@
 package org.apache.jena.permissions.query.rewriter;
 
 import java.util.List;
+import java.util.function.Function;
 
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -30,7 +31,6 @@ import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.expr.* ;
 import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.graph.NodeTransform ;
 
 public class SecuredFunction extends ExprFunctionN
 {
@@ -103,7 +103,7 @@ public class SecuredFunction extends ExprFunctionN
 	}
 
 	@Override
-	public Expr applyNodeTransform( NodeTransform transform )
+	public Expr applyNodeTransform( Function<Node, Node> transform )
 	{
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java
index 78aae0b..fdc7339 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/QuadBlock.java
@@ -22,10 +22,10 @@ import static org.apache.jena.atlas.iterator.Iter.apply ;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.function.Consumer;
 
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.atlas.io.PrintUtils ;
-import org.apache.jena.atlas.iterator.Action ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.shared.PrefixMapping ;
 import org.apache.jena.sparql.algebra.op.OpQuadPattern ;
@@ -167,10 +167,10 @@ public class QuadBlock extends ArrayList<Quad> implements Iterable<Quad>, PrintS
     { 
         final String sep = "\n" ;
 
-        final Action<Quad> strAction = new Action<Quad>() {
+        final Consumer<Quad> strAction = new Consumer<Quad>() {
             boolean first = true ; 
             @Override
-            public void apply(Quad quad)
+            public void accept(Quad quad)
             {
                 if ( ! first )
                     out.print(sep) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java
index 9ece0c9..c35cf6c 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/SDB_QC.java
@@ -23,10 +23,8 @@ import static org.apache.jena.atlas.iterator.Iter.* ;
 import java.sql.SQLException;
 import java.util.List;
 import java.util.Set;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jena.atlas.iterator.Transform;
 import org.apache.jena.query.Query ;
 import org.apache.jena.query.SortCondition ;
 import org.apache.jena.sdb.SDB ;
@@ -102,7 +100,7 @@ public class SDB_QC
         // If part query, need all variables. 
         
         // Project variables
-        List<Var> vars = toList(map(query.getResultVars().iterator(), StringToVar)) ;
+        List<Var> vars = toList(map(query.getResultVars().iterator(), Var::alloc)) ;
         
         if ( vars.size() == 0 )
         {
@@ -114,7 +112,7 @@ public class SDB_QC
             q2.setQueryPattern(query.getQueryPattern()) ;
             q2.setQuerySelectType() ;
             q2.setQueryResultStar(true) ;
-            vars = toList(map(q2.getResultVars().iterator(), StringToVar)) ;
+            vars = toList(map(q2.getResultVars().iterator(), Var::alloc)) ;
         }
         
         
@@ -146,12 +144,4 @@ public class SDB_QC
     {
         return ( x instanceof OpSQL ) ;
     }
-
-    
-    private static Transform<String, Var> StringToVar = new Transform<String, Var>(){
-        @Override
-        public Var convert(String varName)
-        {
-            return Var.alloc(varName) ;
-        }} ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java
index 608cb6b..e2bfda6 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/compiler/TransformSDB.java
@@ -113,12 +113,12 @@ public class TransformSDB extends TransformCopy
         
         // Find optional-on-left
         Set<ScopeEntry> scopes2 = toSet(filter(scopes.iterator(), ScopeEntry.OptionalFilter)) ;
-        Set<Var> leftOptVars = toSet(map(scopes2.iterator(), ScopeEntry.ToVar)) ;              // Vars from left optionals.
+        Set<Var> leftOptVars = toSet(map(scopes2.iterator(), ScopeEntry::getVar)) ;              // Vars from left optionals.
         
         if ( false )
         {
             Iter<ScopeEntry> iter = Iter.iter(scopes) ;
-            Set<Var> leftOptVars_ = iter.filter(ScopeEntry.OptionalFilter).map(ScopeEntry.ToVar).toSet() ;
+            Set<Var> leftOptVars_ = iter.filter(ScopeEntry.OptionalFilter).map(ScopeEntry::getVar).toSet() ;
         }
         
         // Find optional-on-right (easier - it's all variables) 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java
index b9b1d78..0384e85 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeEntry.java
@@ -18,9 +18,9 @@
 
 package org.apache.jena.sdb.core;
 
-import org.apache.jena.atlas.iterator.Action ;
-import org.apache.jena.atlas.iterator.Filter ;
-import org.apache.jena.atlas.iterator.Transform ;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
 import org.apache.jena.sdb.core.sqlexpr.SqlColumn ;
 import org.apache.jena.sparql.core.Var ;
 
@@ -30,27 +30,9 @@ public class ScopeEntry
     SqlColumn column;
     ScopeStatus status ;
     
-    public static Filter<ScopeEntry> OptionalFilter = new Filter<ScopeEntry>()
-    {
-        @Override
-        public boolean accept(ScopeEntry item)
-        { return item.getStatus() == ScopeStatus.OPTIONAL ; }
-    } ;
-    
-    public static Transform<ScopeEntry, Var> ToVar = new Transform<ScopeEntry, Var>()
-    {
-        @Override
-        public Var convert(ScopeEntry item)
-        { return item.getVar() ; } 
-    } ;
+    public static Predicate<ScopeEntry> OptionalFilter = item -> item.getStatus() == ScopeStatus.OPTIONAL;
     
-    public static Action<ScopeEntry> SetOpt = new Action<ScopeEntry>()
-    {
-        @Override
-        public void apply(ScopeEntry item)
-        { item.setStatus(ScopeStatus.OPTIONAL) ; } 
-    } ;
-
+    public static Consumer<ScopeEntry> SetOpt = item -> item.setStatus(ScopeStatus.OPTIONAL) ;
     
     public ScopeEntry(Var var, SqlColumn column)
     { this(var, column, ScopeStatus.FIXED) ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java
index bc51291..2a4706a 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/ScopeRename.java
@@ -22,8 +22,6 @@ import java.util.HashMap ;
 import java.util.HashSet ;
 import java.util.Map ;
 import java.util.Set ;
-
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.sdb.core.sqlexpr.SqlColumn ;
 import org.apache.jena.sparql.core.Var ;
 import org.slf4j.Logger ;
@@ -114,23 +112,4 @@ public class ScopeRename implements Scope
     {
         return frame + " " + scope ; 
     }
-    
-    private Transform<ScopeEntry, ScopeEntry> converter = 
-        new Transform<ScopeEntry, ScopeEntry>(){
-            @Override
-            public ScopeEntry convert(ScopeEntry entry)
-            {
-                entry = new ScopeEntry(entry.getVar(), entry.getColumn()) ;
-                Var var = entry.getVar() ;
-                SqlColumn col = frame.get(var) ;
-                if ( col == null )
-                {
-                    log.warn("No alias for variable "+var) ;
-                    return entry ;
-                }
-                ScopeEntry entry2 = new ScopeEntry(entry.getVar(), entry.getColumn()) ;
-                entry2.setStatus(entry.getStatus()) ;
-                //entry.reset(var, col, entry.getStatus()) ;
-                return entry2 ;
-            }} ;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java
index 489ebf8..69b242c 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/sqlnode/GenerateSQLVisitor.java
@@ -20,10 +20,8 @@ package org.apache.jena.sdb.core.sqlnode;
 
 import java.util.List ;
 import java.util.Set ;
-
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.sdb.SDB ;
 import org.apache.jena.sdb.core.Annotations ;
@@ -281,14 +279,9 @@ public class GenerateSQLVisitor implements SqlNodeVisitor
         return join2 ;
     }
     
-    static final Transform<SqlColumn, SqlTable> colToTable = new Transform<SqlColumn, SqlTable>() {
-        @Override
-        public SqlTable convert(SqlColumn item) { return item.getTable() ; }
-    } ;
-    
     private static Set<SqlTable> tables(Set<SqlColumn> cols)
     {
-        return Iter.toSet(Iter.map(cols.iterator(), colToTable)) ;
+        return Iter.toSet(Iter.map(cols.iterator(), SqlColumn::getTable)) ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java b/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java
index ed1e70f..097736a 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/print/ActionPrint.java
@@ -18,11 +18,12 @@
 
 package org.apache.jena.sdb.print;
 
+import java.util.function.Consumer;
+
 import org.apache.jena.atlas.io.IndentedWriter ;
 import org.apache.jena.atlas.io.Printable ;
-import org.apache.jena.atlas.iterator.Action ;
 
-public class ActionPrint <T extends Printable> implements Action<T> 
+public class ActionPrint <T extends Printable> implements Consumer<T> 
 {
     private boolean first = true ;
     private IndentedWriter out ;
@@ -32,7 +33,7 @@ public class ActionPrint <T extends Printable> implements Action<T>
     public ActionPrint(IndentedWriter out) { this(out, " ") ; }
     
     @Override
-    public void apply(Printable item)
+    public void accept(Printable item)
     {
         if ( ! first && sep != null )
             out.print(sep) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java
index 751e597..9648f6f 100644
--- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java
+++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStoreDesc.java
@@ -21,10 +21,8 @@ package org.apache.jena.sdb.test.junit;
 import java.util.ArrayList ;
 import java.util.Collection ;
 import java.util.List ;
-
 import org.junit.runners.Parameterized.Parameters ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.sdb.StoreDesc ;
 import org.apache.jena.sdb.test.SDBTestSetup ;
 import org.apache.jena.sdb.util.Pair ;
@@ -32,13 +30,6 @@ import org.apache.jena.sdb.util.Pair ;
 //@RunWith(Parameterized.class)
 public abstract class ParamAllStoreDesc
 {
-    // Make into Object[]{String,Store} lists just for JUnit. 
-    static Transform<Pair<String, StoreDesc>, Object[]> fix = new Transform<Pair<String, StoreDesc>, Object[]>()
-    {
-        @Override
-        public Object[] convert(Pair<String, StoreDesc> item)
-        { return new Object[]{item.car(), item.cdr()} ; }
-    } ;
 
     // Build once and return the same for parametrized types each time.
     // Connections are slow to create.
@@ -48,7 +39,7 @@ public abstract class ParamAllStoreDesc
         List<Pair<String, StoreDesc>> x = new ArrayList<Pair<String, StoreDesc>>() ;
         x.addAll(StoreList.storeDesc(SDBTestSetup.storeList)) ;
         x.addAll(StoreList.storeDesc(SDBTestSetup.storeListSimple)) ;
-        data = Iter.iter(x).map(fix).toList() ;
+        data = Iter.iter(x).map(p -> new Object[]{p.car(), p.cdr()}).toList() ;
     }
     
     // ----

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java
index 46bb959..4e0a709 100644
--- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java
+++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/ParamAllStores.java
@@ -21,10 +21,8 @@ package org.apache.jena.sdb.test.junit;
 import java.util.ArrayList ;
 import java.util.Collection ;
 import java.util.List ;
-
 import org.junit.runners.Parameterized.Parameters ;
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.sdb.Store ;
 import org.apache.jena.sdb.StoreDesc ;
 import org.apache.jena.sdb.test.SDBTestSetup ;
@@ -33,13 +31,6 @@ import org.apache.jena.sdb.util.Pair ;
 //@RunWith(Parameterized.class)
 public abstract class ParamAllStores
 {
-    // Make into Object[]{String,Store} lists just for JUnit. 
-    static Transform<Pair<String, StoreDesc>, Object[]> fix = new Transform<Pair<String, StoreDesc>, Object[]>()
-    {
-        @Override
-        public Object[] convert(Pair<String, StoreDesc> item)
-        { return new Object[]{item.car(), item.cdr()} ; }
-    } ;
 
     // Build once and return the same for parametrized types each time.
     // Connections are slow to create.
@@ -49,7 +40,7 @@ public abstract class ParamAllStores
         List<Pair<String, StoreDesc>> x = new ArrayList<Pair<String, StoreDesc>>() ;
         x.addAll(StoreList.stores(SDBTestSetup.storeList)) ;
         x.addAll(StoreList.stores(SDBTestSetup.storeListSimple)) ;
-        data = Iter.iter(x).map(fix).toList() ;
+        data = Iter.iter(x).map(p -> new Object[]{p.car(), p.cdr()}).toList() ;
     }
     
     // ----

http://git-wip-us.apache.org/repos/asf/jena/blob/6b475345/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java
index 8739689..af5f6c8 100644
--- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java
+++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/junit/StoreList.java
@@ -22,9 +22,9 @@ import static org.apache.jena.atlas.lib.StrUtils.strjoinNL ;
 
 import java.util.ArrayList ;
 import java.util.List ;
+import java.util.function.Function;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.Transform ;
 import org.apache.jena.query.* ;
 import org.apache.jena.rdf.model.Model ;
 import org.apache.jena.rdf.model.Property ;
@@ -57,24 +57,9 @@ public class StoreList
             "}") ;
     
     // Not Java's finest hour ...
-    static Transform<Pair<String, String>, Pair<String, StoreDesc>> t1 = new  Transform<Pair<String, String>, Pair<String, StoreDesc>>()
-    {
-        @Override
-        public Pair<String, StoreDesc> convert(Pair<String, String> pair)
-        {
-            return new Pair<String, StoreDesc>(pair.car(), StoreDesc.read(pair.cdr())) ;
-        }
-    } ;
+    static Function<Pair<String, String>, Pair<String, StoreDesc>> t1 = p -> new Pair<String, StoreDesc>(p.car(), StoreDesc.read(p.cdr()));
 
-    static Transform<Pair<String, StoreDesc>, Pair<String, Store>> t2 = new Transform<Pair<String, StoreDesc>, Pair<String, Store>>()
-    {
-        @Override
-        public Pair<String, Store> convert(Pair<String, StoreDesc> pair)
-        {
-            Store store = testStore(pair.cdr()) ;
-            return new Pair<String, Store>(pair.car(), store) ;
-        }
-    } ;
+    static Function<Pair<String, StoreDesc>, Pair<String, Store>> t2 = p -> new Pair<String, Store>(p.car(), testStore(p.cdr()));
     
     public static Store testStore(StoreDesc desc)
     {