Author: ppoddar
Date: Fri Mar 19 21:55:44 2010
New Revision: 925451

URL: http://svn.apache.org/viewvc?rev=925451&view=rev
Log:
Allow user to set the cache mode enum values on EntityManager.setProperty() by 
String

Modified:
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java?rev=925451&r1=925450&r2=925451&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
 Fri Mar 19 21:55:44 2010
@@ -23,8 +23,10 @@ import java.util.Map;
 
 import javax.persistence.CacheRetrieveMode;
 import javax.persistence.CacheStoreMode;
+import javax.persistence.SharedCacheMode;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.openjpa.datacache.DataCacheMode;
 import org.apache.openjpa.kernel.DataCacheRetrieveMode;
 import org.apache.openjpa.kernel.DataCacheStoreMode;
 
@@ -128,10 +130,12 @@ public class JPAProperties {
             return null;
         if (JPAProperties.isValidKey(key)) {
             // works because enum values are identical String
-            if (value instanceof CacheRetrieveMode) {
+            if (value instanceof CacheRetrieveMode || (value instanceof String 
&& CACHE_RETRIEVE_MODE.equals(key))) {
                 return 
(T)DataCacheRetrieveMode.valueOf(value.toString().trim().toUpperCase());
-            } else if (value instanceof CacheStoreMode) {
+            } else if (value instanceof CacheStoreMode || (value instanceof 
String && CACHE_STORE_MODE.equals(key))) {
                 return 
(T)DataCacheStoreMode.valueOf(value.toString().trim().toUpperCase());
+            } else if (value instanceof SharedCacheMode || (value instanceof 
String && CACHE_MODE.equals(key))) {
+                return 
(T)DataCacheMode.valueOf(value.toString().trim().toUpperCase());
             }
         }
         return (T)value;


Reply via email to