openjpa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From curti...@apache.org
Subject svn commit: r916388 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/DataCacheManagerImpl.java
Date Thu, 25 Feb 2010 18:32:35 GMT
Author: curtisr7
Date: Thu Feb 25 18:32:35 2010
New Revision: 916388

URL: http://svn.apache.org/viewvc?rev=916388&view=rev
Log:
OPENJPA-1539: Allow DataCacheManagerImpl.isCachable(ClassMetaData meta) to cache the cacheability
for each given type.

Modified:
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/DataCacheManagerImpl.java

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/DataCacheManagerImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/DataCacheManagerImpl.java?rev=916388&r1=916387&r2=916388&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/DataCacheManagerImpl.java
(original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/DataCacheManagerImpl.java
Thu Feb 25 18:32:35 2010
@@ -18,23 +18,17 @@
  */
 package org.apache.openjpa.datacache;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.HashMap;
+import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.enhance.PCDataGenerator;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
-import org.apache.openjpa.lib.conf.Configuration;
 import org.apache.openjpa.lib.conf.ObjectValue;
 import org.apache.openjpa.lib.util.Closeable;
 import org.apache.openjpa.meta.ClassMetaData;
 import org.apache.openjpa.util.ImplHelper;
 
-import serp.util.Strings;
-
 /**
  * Default data cache manager provides handle to utilities {@linkplain PCDataGenerator},
{@linkplain DataCacheScheduler}
  * and {@linkplain CacheDistributionPolicy} for the cache operation. This implementation
also determines whether a
@@ -53,7 +47,8 @@
     private DataCachePCDataGenerator _pcGenerator = null;
     private DataCacheScheduler _scheduler = null;
     private CacheDistributionPolicy _policy = new DefaultCacheDistributionPolicy();
-
+    private Map<ClassMetaData,Boolean> _cacheable = new HashMap<ClassMetaData, Boolean>();
+    
     public void initialize(OpenJPAConfiguration conf, ObjectValue dataCache, ObjectValue
queryCache) {
         _conf = conf;
         _cache = (DataCache) dataCache.instantiate(DataCache.class, conf);
@@ -137,10 +132,16 @@
      * Affirms if the given type is eligible for cache.
      */
     public boolean isCachable(ClassMetaData meta) {
+        Boolean res = _cacheable.get(meta);
+        if(res != null){
+            return res;
+        }
+
         Boolean isCachable = isCacheableByMode(meta);
         if (isCachable == null) {
            isCachable = isCacheableByType(meta);
         }
+        _cacheable.put(meta, isCachable);
         return isCachable;
     }
     



Mime
View raw message