switch query cache to use Jena Atlas Cache instead of plain LinkedHashMap

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

Branch: refs/heads/JENA-507
Commit: f91818e99306d33d6889f25d6a840756b7e95b64
Parents: 8e24f26
Author: Osma Suominen <osma.suomi...@helsinki.fi>
Authored: Sat Jan 9 10:51:57 2016 +0200
Committer: Osma Suominen <o...@apache.org>
Committed: Mon Jan 11 09:27:13 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/jena/query/text/TextQueryPF.java   | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/f91818e9/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
----------------------------------------------------------------------
diff --git 
a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java 
b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
index c6fa84f..50350eb 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
@@ -20,12 +20,12 @@ package org.apache.jena.query.text ;
 
 import java.util.Collection ;
 import java.util.Iterator ;
-import java.util.LinkedHashMap ;
 import java.util.List ;
-import java.util.Map ;
 import java.util.function.Function ;
 
 import org.apache.jena.atlas.iterator.Iter ;
+import org.apache.jena.atlas.lib.Cache ;
+import org.apache.jena.atlas.lib.CacheFactory ;
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.datatypes.RDFDatatype ;
 import org.apache.jena.datatypes.xsd.XSDDatatype ;
@@ -68,6 +68,7 @@ public class TextQueryPF extends PropertyFunctionBase {
     private String langArg = null;
 
     private static final Symbol cacheSymbol = 
Symbol.create("TextQueryPF.cache");
+    private static final int CACHE_SIZE = 10;
 
     @Override
     public void build(PropFuncArg argSubject, Node predicate, PropFuncArg 
argObject, ExecutionContext execCxt) {
@@ -278,14 +279,14 @@ public class TextQueryPF extends PropertyFunctionBase {
             log.debug("Text query: {} ({})", queryString,limit) ;
 
         String cacheKey = limit + " " + property + " " + queryString ;
-        Map<String,ListMultimap<String,TextHit>> queryCache = 
-            (Map<String,ListMultimap<String,TextHit>>) 
execCxt.getContext().get(cacheSymbol);
+        Cache<String,ListMultimap<String,TextHit>> queryCache = 
+            (Cache<String,ListMultimap<String,TextHit>>) 
execCxt.getContext().get(cacheSymbol);
         if (queryCache == null) { /* doesn't yet exist, need to create it */
-            queryCache = new LinkedHashMap();
+            queryCache = CacheFactory.createCache(CACHE_SIZE);
             execCxt.getContext().put(cacheSymbol, queryCache);
         }
 
-        ListMultimap<String,TextHit> results = queryCache.get(cacheKey) ;
+        ListMultimap<String,TextHit> results = 
queryCache.getIfPresent(cacheKey) ;
         if (results == null) { /* cache miss */
             List<TextHit> resultList = textIndex.query(property, queryString, 
limit) ;
             results = LinkedListMultimap.create();

Reply via email to