You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/08/01 16:22:52 UTC

svn commit: r427587 - in /incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src: main/java/org/apache/cayenne/cache/OSQueryCache.java test/java/org/apache/cayenne/cache/OSQueryCacheTst.java

Author: aadamchik
Date: Tue Aug  1 07:22:51 2006
New Revision: 427587

URL: http://svn.apache.org/viewvc?rev=427587&view=rev
Log:
CAY-613 - exposing OSCache internals to simplify extensions

Modified:
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/cache/OSQueryCacheTst.java

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.java?rev=427587&r1=427586&r2=427587&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.java Tue Aug  1 07:22:51 2006
@@ -40,31 +40,31 @@
  * look like this:
  * 
  * <pre>
- *              # OSCache configuration file
- *             
- *              # OSCache standard configuration per
- *              #     http://www.opensymphony.com/oscache/wiki/Configuration.html
- *              # ---------------------------------------------------------------
- *             
- *              #cache.memory=true
- *              cache.capacity=5000
- *              cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
- *             
- *             
- *              # Cayenne specific properties
- *              # ---------------------------------------------------------------
- *             
- *              # Default refresh period in seconds:
- *              cayenne.default.refresh = 60
- *             
- *              # Default expiry specified as cron expressions per
- *              #    http://www.opensymphony.com/oscache/wiki/Cron%20Expressions.html
- *              # expire entries every hour on the 10's minute
- *              cayenne.default.cron = 10 * * * *
- *             
- *              # Same parameters can be overriden per query
- *              cayenne.group.xyz.refresh = 120
- *              cayenne.group.xyz.cron = 10 1 * * *
+ *                # OSCache configuration file
+ *               
+ *                # OSCache standard configuration per
+ *                #     http://www.opensymphony.com/oscache/wiki/Configuration.html
+ *                # ---------------------------------------------------------------
+ *               
+ *                #cache.memory=true
+ *                cache.capacity=5000
+ *                cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
+ *               
+ *               
+ *                # Cayenne specific properties
+ *                # ---------------------------------------------------------------
+ *               
+ *                # Default refresh period in seconds:
+ *                cayenne.default.refresh = 60
+ *               
+ *                # Default expiry specified as cron expressions per
+ *                #    http://www.opensymphony.com/oscache/wiki/Cron%20Expressions.html
+ *                # expire entries every hour on the 10's minute
+ *                cayenne.default.cron = 10 * * * *
+ *               
+ *                # Same parameters can be overriden per query
+ *                cayenne.group.xyz.refresh = 120
+ *                cayenne.group.xyz.cron = 10 1 * * *
  * </pre>
  * 
  * Further extension of OSQueryCache is possible by using OSCache listener API.
@@ -83,7 +83,7 @@
     static String REFRESH_SUFFIX = ".refresh";
     static String CRON_SUFFIX = ".cron";
 
-    protected GeneralCacheAdministrator cache;
+    protected GeneralCacheAdministrator osCache;
 
     RefreshSpecification defaultRefreshSpecification;
     Map refreshSpecifications;
@@ -93,17 +93,20 @@
         init(admin, admin.getProperties());
     }
 
-    public OSQueryCache(Properties properties) {
-        init(new GeneralCacheAdministrator(), properties);
+    public OSQueryCache(GeneralCacheAdministrator cache, Properties properties) {
+        init(cache, properties);
     }
 
-    OSQueryCache(GeneralCacheAdministrator cache, Properties properties) {
-        init(cache, properties);
+    /**
+     * Returns the underlying OSCache manager object.
+     */
+    public GeneralCacheAdministrator getOsCache() {
+        return osCache;
     }
 
     void init(GeneralCacheAdministrator cache, Properties properties) {
 
-        this.cache = cache;
+        this.osCache = cache;
         this.defaultRefreshSpecification = new RefreshSpecification();
 
         // load defaults and per-query settings
@@ -188,13 +191,13 @@
         }
 
         try {
-            return (List) cache.getFromCache(
+            return (List) osCache.getFromCache(
                     key,
                     refresh.refreshPeriod,
                     refresh.cronExpression);
         }
         catch (NeedsRefreshException e) {
-            cache.cancelUpdate(key);
+            osCache.cancelUpdate(key);
             return null;
         }
     }
@@ -202,32 +205,32 @@
     public void put(QueryMetadata metadata, List results) {
         String key = metadata.getCacheKey();
         if (key != null) {
-            cache.putInCache(key, results, metadata.getCacheGroups());
+            osCache.putInCache(key, results, metadata.getCacheGroups());
         }
     }
 
     public void remove(String key) {
         if (key != null) {
-            cache.removeEntry(key);
+            osCache.removeEntry(key);
         }
     }
 
     public void removeGroup(String groupKey) {
         if (groupKey != null) {
-            cache.flushGroup(groupKey);
+            osCache.flushGroup(groupKey);
         }
     }
 
     public void clear() {
-        cache.flushAll();
+        osCache.flushAll();
     }
 
     public int size() {
-        return cache.getCache().getSize();
+        return osCache.getCache().getSize();
     }
 
     public int capacity() {
-        return cache.getCache().getCapacity();
+        return osCache.getCache().getCapacity();
     }
 
     final static class RefreshSpecification {

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/cache/OSQueryCacheTst.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/cache/OSQueryCacheTst.java?rev=427587&r1=427586&r2=427587&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/cache/OSQueryCacheTst.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/cache/OSQueryCacheTst.java Tue Aug  1 07:22:51 2006
@@ -29,6 +29,7 @@
 import org.apache.cayenne.query.QueryMetadata;
 
 import com.opensymphony.oscache.base.CacheEntry;
+import com.opensymphony.oscache.general.GeneralCacheAdministrator;
 
 public class OSQueryCacheTst extends TestCase {
 
@@ -47,7 +48,7 @@
         Properties props = new Properties();
         props.put(OSQueryCache.DEFAULT_REFRESH_KEY, "15");
         props.put(OSQueryCache.DEFAULT_CRON_KEY, "9 * * * * *");
-        OSQueryCache cache = new OSQueryCache(props);
+        OSQueryCache cache = new OSQueryCache(new GeneralCacheAdministrator(), props);
 
         assertNull(cache.refreshSpecifications);
         assertEquals("9 * * * * *", cache.defaultRefreshSpecification.cronExpression);
@@ -66,7 +67,7 @@
                 OSQueryCache.GROUP_PREFIX + "XYZ" + OSQueryCache.CRON_SUFFIX,
                 "24 * * * * *");
 
-        OSQueryCache cache = new OSQueryCache(props);
+        OSQueryCache cache = new OSQueryCache(new GeneralCacheAdministrator(), props);
 
         assertNotNull(cache.refreshSpecifications);
         assertEquals(2, cache.refreshSpecifications.size());