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());
}
}