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/09 19:45:21 UTC
svn commit: r430106 -
/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.java
Author: aadamchik
Date: Wed Aug 9 10:45:20 2006
New Revision: 430106
URL: http://svn.apache.org/viewvc?rev=430106&view=rev
Log:
exposing properties and init methods of OSQueryCache provider for the benefit of subclassing.
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/OSQueryCache.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=430106&r1=430105&r2=430106&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 Wed Aug 9 10:45:20 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.
@@ -87,6 +87,7 @@
RefreshSpecification defaultRefreshSpecification;
Map refreshSpecifications;
+ Properties properties;
public OSQueryCache() {
OSCacheAdministrator admin = new OSCacheAdministrator();
@@ -104,8 +105,16 @@
return osCache;
}
- void init(GeneralCacheAdministrator cache, Properties properties) {
+ /**
+ * Returns configuration properties. Usually this is the contents of
+ * "oscache.properties" file.
+ */
+ public Properties getProperties() {
+ return properties;
+ }
+ void init(GeneralCacheAdministrator cache, Properties properties) {
+ this.properties = properties;
this.osCache = cache;
this.defaultRefreshSpecification = new RefreshSpecification();
@@ -140,18 +149,35 @@
String name = key.substring(GROUP_PREFIX.length(), key.length()
- REFRESH_SUFFIX.length());
- nonNullSpec(name).setRefreshPeriod(entry.getValue());
+ initRefreshPolicy(name, entry.getValue());
}
else if (key.endsWith(CRON_SUFFIX)) {
String name = key.substring(GROUP_PREFIX.length(), key.length()
- CRON_SUFFIX.length());
- nonNullSpec(name).cronExpression = entry.getValue().toString();
+ initCronPolicy(name, entry.getValue());
}
-
}
}
}
+ }
+
+ /**
+ * Called internally for each group that is configured with cron policy in the
+ * properties. Exposed mainly for the benefit of subclasses. When overriding, call
+ * 'super'.
+ */
+ protected void initCronPolicy(String groupName, Object value) {
+ nonNullSpec(groupName).cronExpression = value != null ? value.toString() : null;
+ }
+
+ /**
+ * Called internally for each group that is configured with refresh policy in the
+ * properties. Exposed mainly for the benefit of subclasses. When overriding, call
+ * 'super'.
+ */
+ protected void initRefreshPolicy(String groupName, Object value) {
+ nonNullSpec(groupName).setRefreshPeriod(value);
}
private RefreshSpecification nonNullSpec(String name) {