Author: aadamchik
Date: Mon Jul 31 15:00:52 2006
New Revision: 427317

URL: http://svn.apache.org/viewvc?rev=427317&view=rev
Log:
CAY-613 - a few minor extensions to the OSQueryCache; more unit tests

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=427317&r1=427316&r2=427317&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
 Mon Jul 31 15:00:52 2006
@@ -40,33 +40,35 @@
  * 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.
+ * 
  * @since 3.0
  * @author Andrus Adamchik
  */
@@ -147,7 +149,6 @@
                 }
             }
         }
-
     }
 
     private RefreshSpecification nonNullSpec(String name) {
@@ -225,6 +226,10 @@
         return cache.getCache().getSize();
     }
 
+    public int capacity() {
+        return cache.getCache().getCapacity();
+    }
+
     final static class RefreshSpecification {
 
         int refreshPeriod;
@@ -262,5 +267,4 @@
             return super.config.getProperties();
         }
     }
-
 }

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=427317&r1=427316&r2=427317&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
 Mon Jul 31 15:00:52 2006
@@ -18,12 +18,16 @@
  ****************************************************************/
 package org.apache.cayenne.cache;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Properties;
 
-import org.apache.cayenne.cache.OSQueryCache.RefreshSpecification;
-
 import junit.framework.TestCase;
 
+import org.apache.cayenne.cache.OSQueryCache.RefreshSpecification;
+import org.apache.cayenne.query.MockQueryMetadata;
+import org.apache.cayenne.query.QueryMetadata;
+
 import com.opensymphony.oscache.base.CacheEntry;
 
 public class OSQueryCacheTst extends TestCase {
@@ -78,5 +82,29 @@
         assertNotNull(xyz);
         assertEquals("24 * * * * *", xyz.cronExpression);
         assertEquals(35, xyz.refreshPeriod);
+    }
+
+    public void testSize() {
+        OSQueryCache cache = new OSQueryCache();
+
+        List r1 = new ArrayList();
+        QueryMetadata m1 = new MockQueryMetadata() {
+
+            public String getCacheKey() {
+                return "a";
+            }
+        };
+        cache.put(m1, r1);
+        assertEquals(1, cache.size());
+        
+        List r2 = new ArrayList();
+        QueryMetadata m2 = new MockQueryMetadata() {
+
+            public String getCacheKey() {
+                return "b";
+            }
+        };
+        cache.put(m2, r2);
+        assertEquals(2, cache.size());
     }
 }


Reply via email to