svn commit: r431298 - in /ibatis/trunk/java/mapper/mapper2: build/version.properties src/com/ibatis/sqlmap/engine/impl/SqlMapClientImpl.java src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.ja

2006-08-14 Thread cbegin
Author: cbegin
Date: Sun Aug 13 23:10:08 2006
New Revision: 431298

URL: http://svn.apache.org/viewvc?rev=431298view=rev
Log:
Fixed IBATIS-320 When every method call openSession() return same object .

Modified:
ibatis/trunk/java/mapper/mapper2/build/version.properties

ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapClientImpl.java

ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.java

Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?rev=431298r1=431297r2=431298view=diff
==
--- ibatis/trunk/java/mapper/mapper2/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/build/version.properties Sun Aug 13 
23:10:08 2006
@@ -1,5 +1,5 @@
 #Build version info
-#Sun Aug 13 23:45:30 MDT 2006
+#Mon Aug 14 00:07:17 MDT 2006
 version=2.1.7
-buildDate=2006/08/13 23\:45
-buildNum=626
+buildDate=2006/08/14 00\:07
+buildNum=627

Modified: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapClientImpl.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapClientImpl.java?rev=431298r1=431297r2=431298view=diff
==
--- 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapClientImpl.java
 (original)
+++ 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapClientImpl.java
 Sun Aug 13 23:10:08 2006
@@ -214,14 +214,14 @@
   }
 
   public SqlMapSession openSession() {
-SqlMapSessionImpl sqlMapSession = getLocalSqlMapSession();
+SqlMapSessionImpl sqlMapSession = new SqlMapSessionImpl(this);
 sqlMapSession.open();
 return sqlMapSession;
   }
 
   public SqlMapSession openSession(Connection conn) {
 try {
-  SqlMapSessionImpl sqlMapSession = getLocalSqlMapSession();
+  SqlMapSessionImpl sqlMapSession = new SqlMapSessionImpl(this);
   sqlMapSession.open();
   sqlMapSession.setUserConnection(conn);
   return sqlMapSession;

Modified: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.java?rev=431298r1=431297r2=431298view=diff
==
--- 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.java
 (original)
+++ 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.java
 Sun Aug 13 23:10:08 2006
@@ -838,7 +838,7 @@
   session.setTransactionState(TransactionState.STATE_USER_PROVIDED);
 } else {
   session.setTransaction(null);
-  pushSession(session);
+  session.reset(); // used to be pushSession, which is probably incorrect.
 }
   }
   /**




svn commit: r431299 - /ibatis/trunk/java/mapper/mapper2/doc/release.txt

2006-08-14 Thread cbegin
Author: cbegin
Date: Sun Aug 13 23:12:55 2006
New Revision: 431299

URL: http://svn.apache.org/viewvc?rev=431299view=rev
Log:
Updated release.txt with IBATIS-320

Modified:
ibatis/trunk/java/mapper/mapper2/doc/release.txt

Modified: ibatis/trunk/java/mapper/mapper2/doc/release.txt
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/doc/release.txt?rev=431299r1=431298r2=431299view=diff
==
--- ibatis/trunk/java/mapper/mapper2/doc/release.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/doc/release.txt Sun Aug 13 23:12:55 2006
@@ -11,6 +11,7 @@
  o Added support for ResultSet OUT params from stored procs (e.g. Oracle Ref 
Cursor)
  o Added support for Multiple ResultSets mapped to corresponding ResultMaps or 
ResultClasses.
 
+ o Fixed IBATIS-320 - openSession() returns same object
  o Fixed IBATIS-325 - DateTypeHandler uses static SimpleDateFormat instance. 
Not thread-safe.
  o Fixed IBATIS-224 - isNotNull node causes typehandler mappings in statement 
to fail
  o Fixed IBATIS-249 - Race conditions in Throttle lead to thread blockage 
popping items from ThrottledPools under stress




svn commit: r431306 - in /ibatis/trunk/java/mapper/mapper2: build/ doc/ src/com/ibatis/common/beans/ test/com/ibatis/sqlmap/ test/com/ibatis/sqlmap/maps/ test/testdomain/

2006-08-14 Thread cbegin
Author: cbegin
Date: Mon Aug 14 00:45:08 2006
New Revision: 431306

URL: http://svn.apache.org/viewvc?rev=431306view=rev
Log:
Added support for private properties.

Added:

ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/PrivateMethodAccessTest.java
ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/PrivateBook.xml
ibatis/trunk/java/mapper/mapper2/test/testdomain/PrivateBook.java
Modified:
ibatis/trunk/java/mapper/mapper2/build/version.properties
ibatis/trunk/java/mapper/mapper2/doc/release.txt
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java

ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/NestedIterateTest.java

ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/ResultObjectFactoryTest.java

ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml

Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?rev=431306r1=431305r2=431306view=diff
==
--- ibatis/trunk/java/mapper/mapper2/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/build/version.properties Mon Aug 14 
00:45:08 2006
@@ -1,5 +1,5 @@
 #Build version info
-#Mon Aug 14 00:07:17 MDT 2006
+#Mon Aug 14 01:41:36 MDT 2006
 version=2.1.7
-buildDate=2006/08/14 00\:07
-buildNum=627
+buildDate=2006/08/14 01\:41
+buildNum=628

Modified: ibatis/trunk/java/mapper/mapper2/doc/release.txt
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/doc/release.txt?rev=431306r1=431305r2=431306view=diff
==
--- ibatis/trunk/java/mapper/mapper2/doc/release.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/doc/release.txt Mon Aug 14 00:45:08 2006
@@ -10,6 +10,7 @@
  o Removed custom nested transactions (JDBC 1.4 now required)
  o Added support for ResultSet OUT params from stored procs (e.g. Oracle Ref 
Cursor)
  o Added support for Multiple ResultSets mapped to corresponding ResultMaps or 
ResultClasses.
+ o Added support for private properties.
 
  o Fixed IBATIS-320 - openSession() returns same object
  o Fixed IBATIS-325 - DateTypeHandler uses static SimpleDateFormat instance. 
Not thread-safe.

Modified: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java?rev=431306r1=431305r2=431306view=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 
Mon Aug 14 00:45:08 2006
@@ -15,16 +15,17 @@
  */
 package com.ibatis.common.beans;
 
+import com.ibatis.common.logging.Log;
+import com.ibatis.common.logging.LogFactory;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.UndeclaredThrowableException;
+import java.lang.reflect.ReflectPermission;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.*;
 
-import com.ibatis.common.logging.Log;
-import com.ibatis.common.logging.LogFactory;
-
 /**
  * This class represents a cached set of class definition information that
  * allows for easy mapping between property names and getter/setter methods.
@@ -84,7 +85,7 @@
   }
 
   private void addMethods(Class cls) {
-Method[] methods = cls.getMethods();
+Method[] methods = getAllMethodsForClass(cls);
 for (int i = 0; i  methods.length; i++) {
   String name = methods[i].getName();
   if (name.startsWith(set)  name.length()  3) {
@@ -112,6 +113,51 @@
 }
   }
   name = null;
+}
+  }
+
+  private Method[] getAllMethodsForClass(Class cls) {
+Set uniqueMethodNames = new HashSet();
+List allMethods = new ArrayList();
+Class currentClass = cls;
+while (currentClass != null) {
+  addMethods(currentClass, uniqueMethodNames, allMethods);
+  Class[] interfaces = currentClass.getInterfaces();
+  for (int i=0; iinterfaces.length; i++) {
+addMethods(interfaces[i], uniqueMethodNames, allMethods);
+  }
+  currentClass = currentClass.getSuperclass();
+}
+return (Method[]) allMethods.toArray(new Method[allMethods.size()]);
+  }
+
+  private void addMethods(Class currentClass, Set uniqueMethodNames, List 
allMethods) {
+Method[] methods = currentClass.getDeclaredMethods();
+for (int i=0; i  methods.length; i++) {
+  Method currentMethod = methods[i];
+  String methodName = currentMethod.getName() + 
currentMethod.getParameterTypes().length;
+  if (!uniqueMethodNames.contains(methodName)) {
+uniqueMethodNames.add(methodName);
+if (canAccessPrivateMethods()) {