You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2006/01/26 04:16:01 UTC

svn commit: r372417 - in /ibatis/trunk/java/mapper/mapper2/src/com/ibatis: common/beans/ClassInfo.java sqlmap/engine/builder/xml/SqlMapConfigParser.java sqlmap/engine/builder/xml/sql-map-config-2.dtd

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