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/07/31 23:10:19 UTC

svn commit: r427277 - in /incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src: main/java/org/apache/cayenne/access/ main/java/org/apache/cayenne/cache/ main/java/org/apache/cayenne/query/ main/java/org/apache/cayenne/remote/ test/java/org/apache/...

Author: aadamchik
Date: Mon Jul 31 14:10:18 2006
New Revision: 427277

URL: http://svn.apache.org/viewvc?rev=427277&view=rev
Log:
CAY-613 - cache groups support

Modified:
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/ObjectStore.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/MapQueryCache.java
    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/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/ProcedureQuery.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadata.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SQLTemplate.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SelectQuery.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/RangeQuery.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/cache/OSQueryCacheTst.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/ObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/ObjectStore.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/ObjectStore.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/access/ObjectStore.java Mon Jul 31 14:10:18 2006
@@ -1192,6 +1192,10 @@
         public String getCacheKey() {
             return cacheKey;
         }
+        
+        public String[] getCacheGroups() {
+            return null;
+        }
 
         public String getCachePolicy() {
             return null;

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/MapQueryCache.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/MapQueryCache.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/MapQueryCache.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/cache/MapQueryCache.java Mon Jul 31 14:10:18 2006
@@ -23,7 +23,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.commons.collections.map.LRUMap;
 
@@ -68,11 +67,7 @@
 
             CacheEntry entry = new CacheEntry();
             entry.list = results;
-
-            ObjEntity entity = metadata.getObjEntity();
-            if (entity != null) {
-                entry.entityName = entity.getName();
-            }
+            entry.cacheGroups = metadata.getCacheGroups();
 
             synchronized (this) {
                 map.put(key, entry);
@@ -94,14 +89,20 @@
                 Iterator it = map.values().iterator();
                 while (it.hasNext()) {
                     CacheEntry entry = (CacheEntry) it.next();
-                    if (groupKey.equals(entry.entityName)) {
-                        it.remove();
+                    if (entry.cacheGroups != null) {
+                        for (int i = 0; i < entry.cacheGroups.length; i++) {
+
+                            if (groupKey.equals(entry.cacheGroups[i])) {
+                                it.remove();
+                                break;
+                            }
+                        }
                     }
                 }
             }
         }
     }
-    
+
     public void clear() {
         synchronized (this) {
             map.clear();
@@ -115,6 +116,6 @@
     final class CacheEntry {
 
         List list;
-        String entityName;
+        String[] cacheGroups;
     }
 }

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=427277&r1=427276&r2=427277&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 14:10:18 2006
@@ -24,7 +24,6 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.QueryMetadata;
 
 import com.opensymphony.oscache.base.CacheEntry;
@@ -36,35 +35,36 @@
  * parameters are initialized from "/oscache.properties" file per <a
  * href="http://www.opensymphony.com/oscache/wiki/Configuration.html">OSCache</a>
  * documentation. In addition to the standard OSCache parameters, Cayenne provdier allows
- * to setup global and per-query cache expiration parameters. A sample oscache.properties
- * may look like this:
+ * to setup global cache expiration parameters, and parameters matching the main query
+ * cache group (i.e. the cache groups specified first). A sample oscache.properties may
+ * 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.query.xyz.refresh = 120
- *         cayenne.query.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>
  * 
  * @since 3.0
@@ -77,7 +77,7 @@
     static String DEFAULT_REFRESH_KEY = "cayenne.default.refresh";
     static String DEFAULT_CRON_KEY = "cayenne.default.cron";
 
-    static String QUERY_PREFIX = "cayenne.query.";
+    static String GROUP_PREFIX = "cayenne.group.";
     static String REFRESH_SUFFIX = ".refresh";
     static String CRON_SUFFIX = ".cron";
 
@@ -129,16 +129,16 @@
                 }
 
                 String key = entry.getKey().toString();
-                if (key.startsWith(QUERY_PREFIX)) {
+                if (key.startsWith(GROUP_PREFIX)) {
 
                     if (key.endsWith(REFRESH_SUFFIX)) {
-                        String name = key.substring(QUERY_PREFIX.length(), key.length()
+                        String name = key.substring(GROUP_PREFIX.length(), key.length()
                                 - REFRESH_SUFFIX.length());
 
                         nonNullSpec(name).setRefreshPeriod(entry.getValue());
                     }
                     else if (key.endsWith(CRON_SUFFIX)) {
-                        String name = key.substring(QUERY_PREFIX.length(), key.length()
+                        String name = key.substring(GROUP_PREFIX.length(), key.length()
                                 - CRON_SUFFIX.length());
 
                         nonNullSpec(name).cronExpression = entry.getValue().toString();
@@ -176,7 +176,10 @@
         RefreshSpecification refresh = null;
 
         if (refreshSpecifications != null) {
-            refresh = (RefreshSpecification) refreshSpecifications.get(key);
+            String[] groups = metadata.getCacheGroups();
+            if (groups != null && groups.length > 0) {
+                refresh = (RefreshSpecification) refreshSpecifications.get(groups[0]);
+            }
         }
 
         if (refresh == null) {
@@ -198,14 +201,7 @@
     public void put(QueryMetadata metadata, List results) {
         String key = metadata.getCacheKey();
         if (key != null) {
-
-            ObjEntity entity = metadata.getObjEntity();
-
-            String[] groups = entity != null ? new String[] {
-                entity.getName()
-            } : null;
-
-            cache.putInCache(key, results, groups);
+            cache.putInCache(key, results, metadata.getCacheGroups());
         }
     }
 

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java Mon Jul 31 14:10:18 2006
@@ -24,6 +24,7 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.StringTokenizer;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.Persistent;
@@ -53,13 +54,13 @@
 
     PrefetchTreeNode prefetchTree;
     String cacheKey;
+    String[] cacheGroups;
 
     transient ObjEntity objEntity;
     transient DbEntity dbEntity;
     transient DataMap dataMap;
     transient Object lastRoot;
     transient EntityResolver lastEntityResolver;
-    
 
     /**
      * Copies values of this object to another SelectInfo object.
@@ -154,6 +155,7 @@
                 .get(QueryMetadata.RESOLVING_INHERITED_PROPERTY);
 
         Object cachePolicy = properties.get(QueryMetadata.CACHE_POLICY_PROPERTY);
+        Object cacheGroups = properties.get(QueryMetadata.CACHE_GROUPS_PROPERTY);
 
         // init ivars from properties
         this.fetchLimit = (fetchLimit != null)
@@ -179,6 +181,18 @@
         this.cachePolicy = (cachePolicy != null)
                 ? cachePolicy.toString()
                 : QueryMetadata.CACHE_POLICY_DEFAULT;
+
+        this.cacheGroups = null;
+        if (cacheGroups instanceof String[]) {
+            this.cacheGroups = (String[]) cacheGroups;
+        }
+        else if (cacheGroups instanceof String) {
+            StringTokenizer toks = new StringTokenizer(cacheGroups.toString(), ",");
+            this.cacheGroups = new String[toks.countTokens()];
+            for (int i = 0; i < this.cacheGroups.length; i++) {
+                this.cacheGroups[i] = toks.nextToken();
+            }
+        }
     }
 
     public void encodeAsXML(XMLEncoder encoder) {
@@ -216,6 +230,14 @@
         if (prefetchTree != null) {
             prefetchTree.encodeAsXML(encoder);
         }
+        
+        if (cacheGroups != null && cacheGroups.length > 0) {
+            StringBuffer buffer = new StringBuffer(cacheGroups[0]);
+            for (int i = 1; i < cacheGroups.length; i++) {
+                buffer.append(',').append(cacheGroups[i]);
+            }
+            encoder.printProperty(QueryMetadata.CACHE_GROUPS_PROPERTY, cachePolicy);
+        }
     }
 
     /**
@@ -285,6 +307,20 @@
 
     void setCachePolicy(String policy) {
         this.cachePolicy = policy;
+    }
+
+    /**
+     * @since 3.0
+     */
+    public String[] getCacheGroups() {
+        return cacheGroups;
+    }
+
+    /**
+     * @since 3.0
+     */
+    void setCacheGroups(String[] groups) {
+        this.cacheGroups = groups;
     }
 
     public boolean isFetchingDataRows() {

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java Mon Jul 31 14:10:18 2006
@@ -69,6 +69,10 @@
     public String getCacheKey() {
         return null;
     }
+    
+    public String[] getCacheGroups() {
+        return null;
+    }
 
     public String getCachePolicy() {
         return QueryMetadata.CACHE_POLICY_DEFAULT;

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/ProcedureQuery.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/ProcedureQuery.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/ProcedureQuery.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/ProcedureQuery.java Mon Jul 31 14:10:18 2006
@@ -293,6 +293,20 @@
     public void setCachePolicy(String policy) {
         this.metaData.setCachePolicy(policy);
     }
+    
+    /**
+     * @since 3.0
+     */
+    public String[] getCacheGroups() {
+        return metaData.getCacheGroups();
+    }
+
+    /**
+     * @since 3.0
+     */
+    public void setCacheGroups(String[] cachGroups) {
+        this.metaData.setCacheGroups(cachGroups);
+    }
 
     public int getFetchLimit() {
         return metaData.getFetchLimit();

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadata.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadata.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadata.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadata.java Mon Jul 31 14:10:18 2006
@@ -93,6 +93,11 @@
     public static final boolean RESOLVING_INHERITED_DEFAULT = true;
 
     public static final String CACHE_POLICY_PROPERTY = "cayenne.GenericSelectQuery.cachePolicy";
+    
+    /**
+     * @since 3.0
+     */
+    public static final String CACHE_GROUPS_PROPERTY = "cayenne.GenericSelectQuery.cacheGroups";
 
     public static final String CACHE_POLICY_DEFAULT = NO_CACHE;
 
@@ -128,6 +133,16 @@
      * caching. If null is returned, no caching is performed.
      */
     String getCacheKey();
+
+    /**
+     * Returns an optional array of cache "groups". Cache groups allow to invalidate query
+     * caches in bulk on different events. Usually the first group in the array is
+     * considered to be the "main" group that is used for declarative cache invalidation
+     * with some cache providers.
+     * 
+     * @since 3.0
+     */
+    String[] getCacheGroups();
 
     /**
      * Returns <code>true</code> if this query should produce a list of data rows as

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java Mon Jul 31 14:10:18 2006
@@ -86,6 +86,12 @@
         return (overrideExists(QueryMetadata.CACHE_POLICY_PROPERTY)) ? (String) overrides
                 .get(QueryMetadata.CACHE_POLICY_PROPERTY) : info.getCachePolicy();
     }
+    
+    public String[] getCacheGroups() {
+        return (overrideExists(QueryMetadata.CACHE_GROUPS_PROPERTY))
+                ? (String[]) overrides.get(QueryMetadata.CACHE_GROUPS_PROPERTY)
+                : info.getCacheGroups();
+    }
 
     public boolean isFetchingDataRows() {
         if (!overrideExists(QueryMetadata.FETCHING_DATA_ROWS_PROPERTY)) {

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SQLTemplate.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SQLTemplate.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SQLTemplate.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SQLTemplate.java Mon Jul 31 14:10:18 2006
@@ -335,6 +335,20 @@
     public void setCachePolicy(String policy) {
         this.selectInfo.setCachePolicy(policy);
     }
+    
+    /**
+     * @since 3.0
+     */
+    public String[] getCacheGroups() {
+        return selectInfo.getCacheGroups();
+    }
+
+    /**
+     * @since 3.0
+     */
+    public void setCacheGroups(String[] cachGroups) {
+        this.selectInfo.setCacheGroups(cachGroups);
+    }
 
     public int getFetchLimit() {
         return selectInfo.getFetchLimit();

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SelectQuery.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SelectQuery.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SelectQuery.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/query/SelectQuery.java Mon Jul 31 14:10:18 2006
@@ -558,6 +558,20 @@
     }
 
     /**
+     * @since 3.0
+     */
+    public String[] getCacheGroups() {
+        return selectInfo.getCacheGroups();
+    }
+
+    /**
+     * @since 3.0
+     */
+    public void setCacheGroups(String[] cachGroups) {
+        this.selectInfo.setCacheGroups(cachGroups);
+    }
+
+    /**
      * Returns the fetchLimit.
      * 
      * @return int

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java Mon Jul 31 14:10:18 2006
@@ -62,6 +62,10 @@
             public String getCacheKey() {
                 return cacheKey;
             }
+            
+            public String[] getCacheGroups() {
+                return metadata.getCacheGroups();
+            }
 
             public String getCachePolicy() {
                 return metadata.getCachePolicy();

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/RangeQuery.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/RangeQuery.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/RangeQuery.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/main/java/org/apache/cayenne/remote/RangeQuery.java Mon Jul 31 14:10:18 2006
@@ -70,6 +70,10 @@
             public String getCacheKey() {
                 return cacheKey;
             }
+            
+            public String[] getCacheGroups() {
+                return null;
+            }
 
             public int getFetchStartIndex() {
                 return fetchStartIndex;

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=427277&r1=427276&r2=427277&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 14:10:18 2006
@@ -53,13 +53,13 @@
     public void testQueryOverrides() {
 
         Properties props = new Properties();
-        props.put(OSQueryCache.QUERY_PREFIX + "ABC" + OSQueryCache.REFRESH_SUFFIX, "25");
+        props.put(OSQueryCache.GROUP_PREFIX + "ABC" + OSQueryCache.REFRESH_SUFFIX, "25");
         props.put(
-                OSQueryCache.QUERY_PREFIX + "ABC" + OSQueryCache.CRON_SUFFIX,
+                OSQueryCache.GROUP_PREFIX + "ABC" + OSQueryCache.CRON_SUFFIX,
                 "12 * * * * *");
-        props.put(OSQueryCache.QUERY_PREFIX + "XYZ" + OSQueryCache.REFRESH_SUFFIX, "35");
+        props.put(OSQueryCache.GROUP_PREFIX + "XYZ" + OSQueryCache.REFRESH_SUFFIX, "35");
         props.put(
-                OSQueryCache.QUERY_PREFIX + "XYZ" + OSQueryCache.CRON_SUFFIX,
+                OSQueryCache.GROUP_PREFIX + "XYZ" + OSQueryCache.CRON_SUFFIX,
                 "24 * * * * *");
 
         OSQueryCache cache = new OSQueryCache(props);

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java?rev=427277&r1=427276&r2=427277&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4-core/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java Mon Jul 31 14:10:18 2006
@@ -49,6 +49,10 @@
     public String getCacheKey() {
         return null;
     }
+    
+    public String[] getCacheGroups() {
+        return null;
+    }
 
     public boolean isFetchingDataRows() {
         return false;