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:37:27 UTC
svn commit: r649246 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne:
map/MapLoader.java query/BaseQueryMetadata.java query/QueryCacheStrategy.java
Author: aadamchik
Date: Thu Apr 17 12:37:20 2008
New Revision: 649246
URL: http://svn.apache.org/viewvc?rev=649246&view=rev
Log:
CAY-1035 Replace QueryMetadata String cache policies with an enum
(loading/storing strategies)
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/MapLoader.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/QueryCacheStrategy.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/MapLoader.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/MapLoader.java?rev=649246&r1=649245&r2=649246&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/MapLoader.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/MapLoader.java Thu Apr 17 12:37:20 2008
@@ -49,7 +49,7 @@
// TODO: andrus, 7/17/2006 - these variables, and project upgrade logic should be
// refactored out of the MapLoader. In fact we should either modify raw XML during the
- // upgrade, or implement some consistent upgrade API across variou loaders
+ // upgrade, or implement some consistent upgrade API across various loaders
final static String _1_2_PACKAGE_PREFIX = "org.objectstyle.cayenne.";
final static String _2_0_PACKAGE_PREFIX = "org.apache.cayenne.";
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=649246&r1=649245&r2=649246&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:37:20 2008
@@ -79,6 +79,7 @@
this.refreshingObjects = info.isRefreshingObjects();
this.resolvingInherited = info.isResolvingInherited();
this.cachePolicy = info.getCachePolicy();
+ this.cacheStrategy = info.getCacheStrategy();
this.cacheKey = info.getCacheKey();
setPrefetchTree(info.getPrefetchTree());
@@ -161,7 +162,10 @@
Object resolvingInherited = properties
.get(QueryMetadata.RESOLVING_INHERITED_PROPERTY);
+ // deprecated cache policy... handle it for backwards compatibility.
Object cachePolicy = properties.get(QueryMetadata.CACHE_POLICY_PROPERTY);
+ Object cacheStrategy = properties.get(QueryMetadata.CACHE_STRATEGY_PROPERTY);
+
Object cacheGroups = properties.get(QueryMetadata.CACHE_GROUPS_PROPERTY);
// init ivars from properties
@@ -189,6 +193,10 @@
? cachePolicy.toString()
: QueryMetadata.CACHE_POLICY_DEFAULT;
+ this.cacheStrategy = (cacheStrategy != null) ? QueryCacheStrategy
+ .safeValueOf(cacheStrategy.toString()) : QueryCacheStrategy
+ .getDefaultStrategy();
+
this.cacheGroups = null;
if (cacheGroups instanceof String[]) {
this.cacheGroups = (String[]) cacheGroups;
@@ -201,7 +209,7 @@
}
}
}
-
+
/**
* @since 3.0
*/
@@ -241,6 +249,12 @@
encoder.printProperty(QueryMetadata.CACHE_POLICY_PROPERTY, cachePolicy);
}
+ if (cacheStrategy != null
+ && QueryCacheStrategy.getDefaultStrategy() != cacheStrategy) {
+ encoder.printProperty(QueryMetadata.CACHE_STRATEGY_PROPERTY, cacheStrategy
+ .name());
+ }
+
if (prefetchTree != null) {
prefetchTree.encodeAsXML(encoder);
}
@@ -295,7 +309,7 @@
public ClassDescriptor getClassDescriptor() {
return classDescriptor;
}
-
+
/**
* Always returns null, as this is not supported for most classic queries.
*
@@ -364,7 +378,7 @@
public int getPageSize() {
return pageSize;
}
-
+
public Query getOrginatingQuery() {
return null;
}
Modified: 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=649246&r1=649245&r2=649246&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryCacheStrategy.java Thu Apr 17 12:37:20 2008
@@ -57,7 +57,20 @@
* treat current cache state as expired, and force the database fetch.
*/
SHARED_CACHE_REFRESH;
-
+
+ /**
+ * Returns QueryCacheStrategy for the specified string name or default strategy for
+ * invalid names.
+ */
+ public static QueryCacheStrategy safeValueOf(String string) {
+ try {
+ return QueryCacheStrategy.valueOf(string);
+ }
+ catch (IllegalArgumentException e) {
+ return getDefaultStrategy();
+ }
+ }
+
public static QueryCacheStrategy getDefaultStrategy() {
return NO_CACHE;
}