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 2008/04/17 21:22:24 UTC

svn commit: r649242 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/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/apach...

Author: aadamchik
Date: Thu Apr 17 12:22:22 2008
New Revision: 649242

URL: http://svn.apache.org/viewvc?rev=649242&view=rev
Log:
CAY-1035 Replace QueryMetadata String cache policies with an enum
(first pass - introducing the enum next to the old policy)

Added:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java
Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java Thu Apr 17 12:22:22 2008
@@ -25,6 +25,7 @@
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.QueryRouter;
 import org.apache.cayenne.query.SQLAction;
@@ -48,11 +49,11 @@
     public QueryMetadata getMetaData(EntityResolver resolver) {
         return this;
     }
-    
+
     public SQLResultSetMapping getResultSetMapping() {
         return null;
     }
-    
+
     public Query getOrginatingQuery() {
         return null;
     }
@@ -72,10 +73,17 @@
         return null;
     }
 
+    /**
+     * @deprecated since 3.0 in favor of 'getCacheStrategy'.
+     */
     public String getCachePolicy() {
         return null;
     }
 
+    public QueryCacheStrategy getCacheStrategy() {
+        return null;
+    }
+
     public DataMap getDataMap() {
         return null;
     }
@@ -95,7 +103,7 @@
     public ObjEntity getObjEntity() {
         return null;
     }
-    
+
     public ClassDescriptor getClassDescriptor() {
         return null;
     }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java Thu Apr 17 12:22:22 2008
@@ -51,6 +51,7 @@
 import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SQLResultSetMapping;
@@ -243,9 +244,9 @@
      * @deprecated since 3.0. See {@link DataContext#getQueryCache()}.
      */
     public int cachedQueriesCount() {
-        return context != null && context.getQueryCache() != null
-                ? context.getQueryCache().size()
-                : 0;
+        return context != null && context.getQueryCache() != null ? context
+                .getQueryCache()
+                .size() : 0;
     }
 
     /**
@@ -579,7 +580,8 @@
      * @deprecated since 3.0. See {@link DataContext#getQueryCache()}.
      */
     public synchronized List getCachedQueryResult(String name) {
-        return context != null && context.getQueryCache() != null ? context.getQueryCache()
+        return context != null && context.getQueryCache() != null ? context
+                .getQueryCache()
                 .get(new CacheQueryMetadata(name)) : null;
     }
 
@@ -1145,6 +1147,10 @@
         }
     }
 
+    /**
+     * @deprecated since 3.0 as this inner class is used to provide backwards
+     *             compatibility for some deprecated methods.
+     */
     final class CacheQueryMetadata implements QueryMetadata {
 
         private String cacheKey;
@@ -1160,7 +1166,7 @@
         public SQLResultSetMapping getResultSetMapping() {
             return null;
         }
-        
+
         public Query getOrginatingQuery() {
             return null;
         }
@@ -1170,6 +1176,10 @@
         }
 
         public String getCachePolicy() {
+            return null;
+        }
+
+        public QueryCacheStrategy getCacheStrategy() {
             return null;
         }
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java Thu Apr 17 12:22:22 2008
@@ -26,6 +26,7 @@
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.SQLResultSetMapping;
 import org.apache.cayenne.reflect.ClassDescriptor;
@@ -130,8 +131,15 @@
             return qualifiedKey(mdDelegate.getCacheKey());
         }
 
+        /**
+         * @deprecated since 3.0 in favor of 'getCacheStrategy'.
+         */
         public String getCachePolicy() {
             return mdDelegate.getCachePolicy();
+        }
+
+        public QueryCacheStrategy getCacheStrategy() {
+            return mdDelegate.getCacheStrategy();
         }
 
         public ClassDescriptor getClassDescriptor() {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java Thu Apr 17 12:22:22 2008
@@ -51,6 +51,7 @@
     boolean refreshingObjects = QueryMetadata.REFRESHING_OBJECTS_DEFAULT;
     boolean resolvingInherited = QueryMetadata.RESOLVING_INHERITED_DEFAULT;
     String cachePolicy = QueryMetadata.CACHE_POLICY_DEFAULT;
+    QueryCacheStrategy cacheStrategy = QueryCacheStrategy.getDefaultStrategy();
 
     PrefetchTreeNode prefetchTree;
     String cacheKey;
@@ -199,6 +200,13 @@
                 this.cacheGroups[i] = toks.nextToken();
             }
         }
+    }
+    
+    /**
+     * @since 3.0
+     */
+    public QueryCacheStrategy getCacheStrategy() {
+        return cacheStrategy;
     }
 
     public void encodeAsXML(XMLEncoder encoder) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java Thu Apr 17 12:22:22 2008
@@ -54,14 +54,14 @@
 
         return null;
     }
-    
+
     /**
      * @since 3.0
      */
     public SQLResultSetMapping getResultSetMapping() {
         return null;
     }
-    
+
     /**
      * @since 3.0
      */
@@ -69,6 +69,13 @@
         return null;
     }
 
+    /**
+     * @since 3.0
+     */
+    public QueryCacheStrategy getCacheStrategy() {
+        return QueryCacheStrategy.getDefaultStrategy();
+    }
+
     public DbEntity getDbEntity() {
         return null;
     }
@@ -76,7 +83,7 @@
     public ObjEntity getObjEntity() {
         return null;
     }
-    
+
     public ClassDescriptor getClassDescriptor() {
         return null;
     }
@@ -88,11 +95,14 @@
     public String getCacheKey() {
         return null;
     }
-    
+
     public String[] getCacheGroups() {
         return null;
     }
 
+    /**
+     * @deprecated since 3.0 {@link #getCacheStrategy()} replaces this method.
+     */
     public String getCachePolicy() {
         return QueryMetadata.CACHE_POLICY_DEFAULT;
     }
@@ -112,7 +122,7 @@
     public int getPageSize() {
         return QueryMetadata.PAGE_SIZE_DEFAULT;
     }
-    
+
     public int getFetchStartIndex() {
         return -1;
     }

Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java?rev=649242&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java Thu Apr 17 12:22:22 2008
@@ -0,0 +1,64 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+package org.apache.cayenne.query;
+
+/**
+ * Defines query result caching policy.
+ * 
+ * @since 3.0
+ * @author Andrus Adamchik
+ */
+public enum QueryCacheStrategy {
+
+    /**
+     * A default cache policy stating that the query results should not be cached.
+     */
+    NO_CACHE,
+
+    /**
+     * A cache policy stating that query results shall be cached by the ObjectContext that
+     * originated the query, independent from any other ObjectContexts.
+     */
+    LOCAL_CACHE,
+
+    /**
+     * A cache policy stating that query results shall be cached by the ObjectContext that
+     * originated the query, independent from any other ObjectContexts, however the query
+     * that uses this policy should treat current cache state as expired, and force the
+     * database fetch.
+     */
+    LOCAL_CACHE_REFRESH,
+
+    /**
+     * A cache policy ruling that query results shall be cached in a shared location
+     * accessible by all ObjectContexts.
+     */
+    SHARED_CACHE,
+
+    /**
+     * A cache policy ruling that query results shall be cached in a shared location
+     * accessible by all ObjectContexts, however the query that uses this policy should
+     * treat current cache state as expired, and force the database fetch.
+     */
+    SHARED_CACHE_REFRESH;
+    
+    public static QueryCacheStrategy getDefaultStrategy() {
+        return NO_CACHE;
+    }
+}

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java Thu Apr 17 12:22:22 2008
@@ -35,28 +35,38 @@
 
     /**
      * A cache policy that disables caching of query results.
+     * 
+     * @deprecated since 3.0 use {@link QueryCacheStrategy} enum.
      */
     public static final String NO_CACHE = "nocache";
 
     /**
      * A cache policy ruling that query results shall be cached separately for each
      * DataContext.
+     * 
+     * @deprecated since 3.0 use {@link QueryCacheStrategy} enum.
      */
     public static final String LOCAL_CACHE = "localcache";
 
     /**
      * Same as {@link #LOCAL_CACHE}, only forcing any current cache expiration.
+     * 
+     * @deprecated since 3.0 use {@link QueryCacheStrategy} enum.
      */
     public static final String LOCAL_CACHE_REFRESH = "localcache_refresh";
 
     /**
      * A cache policy ruling that query results shall be stored in a shared cache
      * accessible by all DataContexts.
+     * 
+     * @deprecated since 3.0 use {@link QueryCacheStrategy} enum.
      */
     public static final String SHARED_CACHE = "sharedcache";
 
     /**
      * Same as {@link #SHARED_CACHE}, only forcing any current cache expiration.
+     * 
+     * @deprecated since 3.0 use {@link QueryCacheStrategy} enum.
      */
     public static final String SHARED_CACHE_REFRESH = "sharedcache_refresh";
 
@@ -93,13 +103,24 @@
 
     public static final boolean RESOLVING_INHERITED_DEFAULT = true;
 
+    /**
+     * @deprecated since 3.0 use {@value #CACHE_STRATEGY_PROPERTY}
+     */
     public static final String CACHE_POLICY_PROPERTY = "cayenne.GenericSelectQuery.cachePolicy";
+    
+    /**
+     * @since 3.0
+     */
+    public static final String CACHE_STRATEGY_PROPERTY = "cayenne.GenericSelectQuery.cacheStrategy";
 
     /**
      * @since 3.0
      */
     public static final String CACHE_GROUPS_PROPERTY = "cayenne.GenericSelectQuery.cacheGroups";
 
+    /**
+     * @deprecated since 3.0 use {@link QueryCacheStrategy} enum.
+     */
     public static final String CACHE_POLICY_DEFAULT = NO_CACHE;
 
     /**
@@ -131,8 +152,16 @@
      * Returns query cache policy, which can be one of {@link #NO_CACHE},
      * {@link #LOCAL_CACHE}, or {@link #SHARED_CACHE}. NO_CACHE is generally a default
      * policy.
+     * 
+     * @deprecated since 3.0 {@link #getCacheStrategy()} replaces this method.
      */
     String getCachePolicy();
+
+    /**
+     * Returns a caching strategy for this query.
+     * @since 3.0
+     */
+    QueryCacheStrategy getCacheStrategy();
 
     /**
      * Returns a String that uniquely identifies this query for the purposes of result

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java Thu Apr 17 12:22:22 2008
@@ -61,7 +61,7 @@
     boolean overrideExists(String key) {
         return overrides != null && overrides.containsKey(key);
     }
-    
+
     /**
      * @since 3.0
      */
@@ -84,11 +84,11 @@
     public ObjEntity getObjEntity() {
         return info.getObjEntity();
     }
-    
+
     public Query getOrginatingQuery() {
         return info.getOrginatingQuery();
     }
-    
+
     /**
      * @since 3.0
      */
@@ -101,11 +101,24 @@
                 .get(CACHE_KEY_PROPERTY) : info.getCacheKey();
     }
 
+    /**
+     * @deprecated since 3.0 {@link #getCacheStrategy()} replaces this method.
+     */
     public String getCachePolicy() {
         return (overrideExists(QueryMetadata.CACHE_POLICY_PROPERTY)) ? (String) overrides
                 .get(QueryMetadata.CACHE_POLICY_PROPERTY) : info.getCachePolicy();
     }
-    
+
+    /**
+     * @since 3.0
+     */
+    public QueryCacheStrategy getCacheStrategy() {
+        return (overrideExists(QueryMetadata.CACHE_STRATEGY_PROPERTY))
+                ? (QueryCacheStrategy) overrides
+                        .get(QueryMetadata.CACHE_STRATEGY_PROPERTY)
+                : info.getCacheStrategy();
+    }
+
     public String[] getCacheGroups() {
         return (overrideExists(QueryMetadata.CACHE_GROUPS_PROPERTY))
                 ? (String[]) overrides.get(QueryMetadata.CACHE_GROUPS_PROPERTY)
@@ -147,7 +160,7 @@
         Number n = (Number) overrides.get(QueryMetadata.PAGE_SIZE_PROPERTY);
         return n != null ? n.intValue() : 0;
     }
-    
+
     public int getFetchStartIndex() {
         return info.getFetchStartIndex();
     }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java Thu Apr 17 12:22:22 2008
@@ -26,6 +26,7 @@
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.QueryRouter;
 import org.apache.cayenne.query.SQLAction;
@@ -60,7 +61,7 @@
         // ClientServerChannel behavior
 
         return new QueryMetadata() {
-            
+
             public Query getOrginatingQuery() {
                 return null;
             }
@@ -68,19 +69,29 @@
             public String getCacheKey() {
                 return cacheKey;
             }
-            
+
             public SQLResultSetMapping getResultSetMapping() {
                 return metadata.getResultSetMapping();
             }
-            
+
             public String[] getCacheGroups() {
                 return metadata.getCacheGroups();
             }
 
+            /**
+             * @deprecated since 3.0 in favor of 'getCacheStrategy'.
+             */
             public String getCachePolicy() {
                 return metadata.getCachePolicy();
             }
 
+            /**
+             * @since 3.0
+             */
+            public QueryCacheStrategy getCacheStrategy() {
+                return metadata.getCacheStrategy();
+            }
+
             public DataMap getDataMap() {
                 return metadata.getDataMap();
             }
@@ -100,7 +111,7 @@
             public ObjEntity getObjEntity() {
                 return metadata.getObjEntity();
             }
-            
+
             public ClassDescriptor getClassDescriptor() {
                 return metadata.getClassDescriptor();
             }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java Thu Apr 17 12:22:22 2008
@@ -31,6 +31,7 @@
 import org.apache.cayenne.query.Ordering;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.QueryRouter;
 import org.apache.cayenne.query.SQLAction;
@@ -74,7 +75,7 @@
             public Query getOrginatingQuery() {
                 return null;
             }
-            
+
             public String getCacheKey() {
                 return cacheKey;
             }
@@ -87,8 +88,15 @@
                 return metadata.getCacheGroups();
             }
 
+            /**
+             * @deprecated since 3.0 in favor of 'getCacheStrategy'.
+             */
             public String getCachePolicy() {
                 return metadata.getCachePolicy();
+            }
+
+            public QueryCacheStrategy getCacheStrategy() {
+                return metadata.getCacheStrategy();
             }
 
             public DataMap getDataMap() {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java Thu Apr 17 12:22:22 2008
@@ -26,6 +26,7 @@
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.QueryRouter;
 import org.apache.cayenne.query.SQLAction;
@@ -57,7 +58,8 @@
      * Creates a query that returns a single page from an existing cached server-side
      * result list.
      */
-    RangeQuery(String cacheKey, int fetchStartIndex, int fetchLimit, Query originatingQuery) {
+    RangeQuery(String cacheKey, int fetchStartIndex, int fetchLimit,
+            Query originatingQuery) {
         this.cacheKey = cacheKey;
         this.fetchStartIndex = fetchStartIndex;
         this.fetchLimit = fetchLimit;
@@ -66,9 +68,9 @@
 
     public QueryMetadata getMetaData(EntityResolver resolver) {
         final QueryMetadata originatingMetadata = originatingQuery.getMetaData(resolver);
-        
+
         return new QueryMetadata() {
-            
+
             public Query getOrginatingQuery() {
                 return originatingQuery;
             }
@@ -101,8 +103,18 @@
                 return 0;
             }
 
+            /**
+             * @deprecated since 3.0 in favor of 'getCacheStrategy'.
+             */
             public String getCachePolicy() {
                 return QueryMetadata.NO_CACHE;
+            }
+
+            /**
+             * @since 3.0
+             */
+            public QueryCacheStrategy getCacheStrategy() {
+                return QueryCacheStrategy.getDefaultStrategy();
             }
 
             public PrefetchTreeNode getPrefetchTree() {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java?rev=649242&r1=649241&r2=649242&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java Thu Apr 17 12:22:22 2008
@@ -47,7 +47,14 @@
         return null;
     }
 
+    /**
+     * @deprecated since 3.0
+     */
     public String getCachePolicy() {
+        return null;
+    }
+    
+    public QueryCacheStrategy getCacheStrategy() {
         return null;
     }