Author: cbegin Date: Wed Jan 25 19:15:57 2006 New Revision: 372417 URL: http://svn.apache.org/viewcvs?rev=372417&view=rev Log: added setting to enable/disable ClassInfo caching.
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java?rev=372417&r1=372416&r2=372417&view=diff ============================================================================== --- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java (original) +++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java Wed Jan 25 19:15:57 2006 @@ -28,6 +28,7 @@ */ public class ClassInfo { + private static boolean cacheEnabled = true; private static final String[] EMPTY_STRING_ARRAY = new String[0]; private static final Set SIMPLE_TYPE_SET = new HashSet(); private static final Map CLASS_INFO_MAP = Collections.synchronizedMap(new HashMap()); @@ -259,14 +260,22 @@ * @return The method cache for the class */ public static ClassInfo getInstance(Class clazz) { - synchronized (clazz) { - ClassInfo cache = (ClassInfo) CLASS_INFO_MAP.get(clazz); - if (cache == null) { - cache = new ClassInfo(clazz); - CLASS_INFO_MAP.put(clazz, cache); + if (cacheEnabled) { + synchronized (clazz) { + ClassInfo cache = (ClassInfo) CLASS_INFO_MAP.get(clazz); + if (cache == null) { + cache = new ClassInfo(clazz); + CLASS_INFO_MAP.put(clazz, cache); + } + return cache; } - return cache; + } else { + return new ClassInfo(clazz); } + } + + public static void setCacheEnabled(boolean cacheEnabled) { + ClassInfo.cacheEnabled = cacheEnabled; } /** Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java?rev=372417&r1=372416&r2=372417&view=diff ============================================================================== --- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java (original) +++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java Wed Jan 25 19:15:57 2006 @@ -5,6 +5,7 @@ import com.ibatis.common.xml.NodeletParser; import com.ibatis.common.xml.NodeletUtils; import com.ibatis.common.exception.NestedRuntimeException; +import com.ibatis.common.beans.ClassInfo; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapException; import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback; @@ -145,6 +146,10 @@ vars.errorCtx.setActivity("loading settings properties"); Properties attributes = NodeletUtils.parseAttributes(node, vars.properties); + + String classInfoCacheEnabledAttr = attributes.getProperty("classInfoCacheEnabled"); + boolean classInfoCacheEnabled = (classInfoCacheEnabledAttr == null || "true".equals(classInfoCacheEnabledAttr)); + ClassInfo.setCacheEnabled(classInfoCacheEnabled); String lazyLoadingEnabledAttr = attributes.getProperty("lazyLoadingEnabled"); boolean lazyLoadingEnabled = (lazyLoadingEnabledAttr == null || "true".equals(lazyLoadingEnabledAttr)); Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd?rev=372417&r1=372416&r2=372417&view=diff ============================================================================== --- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd (original) +++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd Wed Jan 25 19:15:57 2006 @@ -29,6 +29,7 @@ <!ELEMENT settings EMPTY> <!ATTLIST settings +classInfoCacheEnabled (true | false) #IMPLIED lazyLoadingEnabled (true | false) #IMPLIED cacheModelsEnabled (true | false) #IMPLIED enhancementEnabled (true | false) #IMPLIED