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 2007/06/10 09:31:36 UTC

svn commit: r545852 [1/2] - in /ibatis/trunk/java/mapper/mapper2: doc/ javadoc/com/ibatis/sqlmap/client/ src/com/ibatis/sqlmap/engine/builder/xml/ src/com/ibatis/sqlmap/engine/conifg/ src/com/ibatis/sqlmap/engine/exchange/ src/com/ibatis/sqlmap/engine/...

Author: cbegin
Date: Sun Jun 10 00:31:34 2007
New Revision: 545852

URL: http://svn.apache.org/viewvc?view=rev&rev=545852
Log:
REmoved maxTransactions, maxResults, maxSessions.  All are effectively limited bye the resource providers (e.g. database, app server, tx manager etc.)

Added:
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/StatementScope.java   (contents, props changed)
      - copied, changed from r545803, ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/RequestScope.java
Removed:
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/BaseScope.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/RequestScope.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/Scope.java
Modified:
    ibatis/trunk/java/mapper/mapper2/doc/release.txt
    ibatis/trunk/java/mapper/mapper2/javadoc/com/ibatis/sqlmap/client/sql-map-config.xml
    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
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/conifg/SqlMapConfiguration.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/BaseDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ComplexDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DomDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/JavaBeanDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ListDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/MapDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/PrimitiveDataExchange.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapExecutorDelegate.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/impl/SqlMapSessionImpl.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/BasicParameterMap.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/NoParameterMap.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/ParameterMap.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/sql/Sql.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/sql/dynamic/DynamicSql.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/sql/raw/RawSql.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/sql/simple/SimpleDynamicSql.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/sql/stat/StaticSql.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/BaseStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/CachingStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/DeleteStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/GeneralStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/InsertStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/MappedStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/ProcedureStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/RowHandlerCallback.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/SelectKeyStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/SelectStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/UpdateStatement.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/scope/SessionScope.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/transaction/BaseTransactionConfig.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/transaction/TransactionConfig.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/transaction/TransactionManager.java
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig_rof.xml

Modified: ibatis/trunk/java/mapper/mapper2/doc/release.txt
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/doc/release.txt?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/doc/release.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/doc/release.txt Sun Jun 10 00:31:34 2007
@@ -2,8 +2,9 @@
 Build Number: @buildNum@
 
 ------------------------------
- 2.3.1 -
+ 2.x
 ------------------------------
+ o Removed maxTransactions, maxRequests, maxSessions from configuration, all are now controlled by the resource providers
  o Fixed BATIS-391  - Cannot access Lists within custom objects.
  o Fixed IBATIS-388 - Add methods to unwrap all proxied objects
 

Modified: ibatis/trunk/java/mapper/mapper2/javadoc/com/ibatis/sqlmap/client/sql-map-config.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/javadoc/com/ibatis/sqlmap/client/sql-map-config.xml?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/javadoc/com/ibatis/sqlmap/client/sql-map-config.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/javadoc/com/ibatis/sqlmap/client/sql-map-config.xml Sun Jun 10 00:31:34 2007
@@ -25,9 +25,6 @@
     lazyLoadingEnabled="true"
     cacheModelsEnabled="true"
     enhancementEnabled="true"
-    maxRequests="512"
-    maxSessions="128"
-    maxTransactions="32" 
     />
 
   <!-- A type alias can be used to declare a shorter name for a long fully qualified

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapConfigParser.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- 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 Sun Jun 10 00:31:34 2007
@@ -111,18 +111,6 @@
         boolean enhancementEnabled = (enhancementEnabledAttr == null || "true".equals(enhancementEnabledAttr));
         config.setEnhancementEnabled(enhancementEnabled);
 
-        String maxTransactionsAttr = attributes.getProperty("maxTransactions");
-        Integer maxTransactions = maxTransactionsAttr == null ? null : new Integer((maxTransactionsAttr));
-        config.setMaxTransactions(maxTransactions);
-
-        String maxRequestsAttr = attributes.getProperty("maxRequests");
-        Integer maxRequests = maxRequestsAttr == null ? null : new Integer(maxRequestsAttr);
-        config.setMaxRequests(maxRequests);
-
-        String maxSessionsAttr = attributes.getProperty("maxSessions");
-        Integer maxSessions = maxSessionsAttr == null ? null : new Integer(maxSessionsAttr);
-        config.setMaxSessions(maxSessions);
-
         String defaultTimeoutAttr = attributes.getProperty("defaultStatementTimeout");
         Integer defaultTimeout = defaultTimeoutAttr == null ? null : Integer.valueOf(defaultTimeoutAttr);
         config.setDefaultStatementTimeout(defaultTimeout);
@@ -183,7 +171,6 @@
           state.getConfig().getErrorContext().setMoreInfo("Check the transaction manager type or class.");
           TransactionConfig config = (TransactionConfig) Resources.instantiate(type);
           config.setDataSource(state.getDataSource());
-          config.setMaximumConcurrentTransactions(state.getConfig().getDelegate().getMaxTransactions());
           state.getConfig().getErrorContext().setMoreInfo("Check the transactio nmanager properties or configuration.");
           config.setProperties(state.getTxProps());
           config.setForceCommit(commitRequired);

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- 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 Sun Jun 10 00:31:34 2007
@@ -36,9 +36,6 @@
 enhancementEnabled (true | false) #IMPLIED
 errorTracingEnabled (true | false) #IMPLIED
 useStatementNamespaces (true | false) #IMPLIED
-maxSessions CDATA #IMPLIED
-maxTransactions CDATA #IMPLIED
-maxRequests CDATA #IMPLIED
 defaultStatementTimeout CDATA #IMPLIED
 >
 

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/conifg/SqlMapConfiguration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/conifg/SqlMapConfiguration.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/conifg/SqlMapConfiguration.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/conifg/SqlMapConfiguration.java Sun Jun 10 00:31:34 2007
@@ -130,27 +130,6 @@
     AccessPlanFactory.setBytecodeEnhancementEnabled(enhancementEnabled);
   }
 
-  public void setMaxTransactions (Integer maxTransactions) {
-    errorContext.setActivity("setting maximum transactions");
-    if (maxTransactions != null && maxTransactions.intValue() > 0) {
-      client.getDelegate().setMaxTransactions(maxTransactions.intValue());
-    }
-  }
-
-  public void setMaxRequests (Integer maxRequests) {
-    errorContext.setActivity("setting maximum requests");
-    if (maxRequests != null && maxRequests.intValue() > 0) {
-      client.getDelegate().setMaxRequests(maxRequests.intValue());
-    }
-  }
-
-  public void setMaxSessions (Integer maxSessions) {
-    errorContext.setActivity("setting maximum sessions");
-    if (maxSessions != null && maxSessions.intValue() > 0) {
-      client.getDelegate().setMaxSessions(maxSessions.intValue());
-    }
-  }
-
   public void setDefaultStatementTimeout(Integer defaultTimeout) {
     errorContext.setActivity("setting default timeout");
     if (defaultTimeout != null) {

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/BaseDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/BaseDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/BaseDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/BaseDataExchange.java Sun Jun 10 00:31:34 2007
@@ -17,7 +17,7 @@
 
 import com.ibatis.sqlmap.engine.cache.CacheKey;
 import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 
 /**
  * Base implementation for the DataExchange interface
@@ -30,9 +30,9 @@
     this.dataExchangeFactory = dataExchangeFactory;
   }
 
-  public CacheKey getCacheKey(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public CacheKey getCacheKey(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     CacheKey key = new CacheKey();
-    Object[] data = getData(request, parameterMap, parameterObject);
+    Object[] data = getData(statementScope, parameterMap, parameterObject);
     for (int i = 0; i < data.length; i++) {
       if (data[i] != null) {
         key.update(data[i]);

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ComplexDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ComplexDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ComplexDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ComplexDataExchange.java Sun Jun 10 00:31:34 2007
@@ -23,7 +23,7 @@
 import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMapping;
 import com.ibatis.sqlmap.engine.mapping.result.ResultObjectFactoryUtil;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 import com.ibatis.sqlmap.engine.type.TypeHandlerFactory;
 
 import java.util.Map;
@@ -46,7 +46,7 @@
   public void initialize(Map properties) {
   }
 
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     TypeHandlerFactory typeHandlerFactory = getDataExchangeFactory().getTypeHandlerFactory();
     if (parameterObject == null) {
       return new Object[1];
@@ -69,7 +69,7 @@
     }
   }
 
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
     TypeHandlerFactory typeHandlerFactory = getDataExchangeFactory().getTypeHandlerFactory();
     if (typeHandlerFactory.hasTypeHandler(resultMap.getResultClass())) {
       return values[0];
@@ -90,7 +90,7 @@
     }
   }
 
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
     TypeHandlerFactory typeHandlerFactory = getDataExchangeFactory().getTypeHandlerFactory();
     if (typeHandlerFactory.hasTypeHandler(parameterMap.getParameterClass())) {
       return values[0];

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DataExchange.java Sun Jun 10 00:31:34 2007
@@ -18,7 +18,7 @@
 import com.ibatis.sqlmap.engine.cache.CacheKey;
 import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 
 import java.util.Map;
 
@@ -37,48 +37,48 @@
   /**
    * Gets a data array from a parameter object.
    * 
-   * @param request - the scope of the request
+   * @param statementScope - the scope of the request
    * @param parameterMap - the parameter map
    * @param parameterObject - the parameter object
    * 
    * @return - the objects
    */
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject);
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject);
 
   /**
    * Sets values from a data array into a result object.
    * 
-   * @param request - the request scope
+   * @param statementScope - the request scope
    * @param resultMap - the result map
    * @param resultObject - the result object
    * @param values - the values to be mapped
    * 
    * @return the resultObject
    */
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values);
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values);
 
 
   /**
    * Sets values from a data array into a parameter object
    * 
-   * @param request - the request scope
+   * @param statementScope - the request scope
    * @param parameterMap - the parameter map
    * @param parameterObject - the parameter object
    * @param values - the values to set
    * 
    * @return parameterObject
    */
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values);
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values);
 
   /**
    * Returns an object capable of being a unique cache key for a parameter object.
    * 
-   * @param request - the request scope
+   * @param statementScope - the request scope
    * @param parameterMap - the parameter map
    * @param parameterObject - the parameter object
    * 
    * @return - a cache key
    */
-  public CacheKey getCacheKey(RequestScope request, ParameterMap parameterMap, Object parameterObject);
+  public CacheKey getCacheKey(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject);
 
 }

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DomDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DomDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DomDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/DomDataExchange.java Sun Jun 10 00:31:34 2007
@@ -23,7 +23,7 @@
 import com.ibatis.sqlmap.engine.mapping.result.BasicResultMap;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMapping;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 import org.w3c.dom.Document;
 
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -46,7 +46,7 @@
   public void initialize(Map properties) {
   }
 
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     Probe probe = ProbeFactory.getProbe(parameterObject);
 
     ParameterMapping[] mappings = parameterMap.getParameterMappings();
@@ -59,7 +59,7 @@
     return values;
   }
 
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
 
     String name = ((BasicResultMap) resultMap).getXmlName();
     if (name == null) {
@@ -89,7 +89,7 @@
     return resultObject;
   }
 
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
     Probe probe = ProbeFactory.getProbe(parameterObject);
 
     ParameterMapping[] mappings = parameterMap.getParameterMappings();

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/JavaBeanDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/JavaBeanDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/JavaBeanDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/JavaBeanDataExchange.java Sun Jun 10 00:31:34 2007
@@ -24,7 +24,7 @@
 import com.ibatis.sqlmap.engine.mapping.result.ResultMapping;
 import com.ibatis.sqlmap.engine.mapping.result.ResultObjectFactoryUtil;
 import com.ibatis.sqlmap.engine.scope.ErrorContext;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -86,7 +86,7 @@
     }
   }
 
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     if (parameterPlan != null) {
       return parameterPlan.getProperties(parameterObject);
     } else {
@@ -94,11 +94,11 @@
     }
   }
 
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
     if (resultPlan != null) {
       Object object = resultObject;
 
-      ErrorContext errorContext = request.getErrorContext();
+      ErrorContext errorContext = statementScope.getErrorContext();
 
       if (object == null) {
         errorContext.setMoreInfo("The error occured while instantiating the result object");
@@ -117,7 +117,7 @@
   }
 
   // Bug ibatis-12
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
     if (outParamPlan != null) {
       Object object = parameterObject;
       if (object == null) {

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ListDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ListDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ListDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/ListDataExchange.java Sun Jun 10 00:31:34 2007
@@ -19,7 +19,7 @@
 import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMapping;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 import com.ibatis.common.beans.ProbeFactory;
 
 import java.util.ArrayList;
@@ -38,7 +38,7 @@
   public void initialize(Map properties) {
   }
 
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     ParameterMapping[] mappings = parameterMap.getParameterMappings();
     Object[] data = new Object[mappings.length];
     for (int i = 0; i < mappings.length; i++) {
@@ -84,7 +84,7 @@
     return data;
   }
 
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
     ResultMapping[] mappings = resultMap.getResultMappings();
     List data = new ArrayList();
     for (int i = 0; i < mappings.length; i++) {
@@ -95,7 +95,7 @@
     return data;
   }
 
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
     ParameterMapping[] mappings = parameterMap.getParameterMappings();
     List data = new ArrayList();
     for (int i = 0; i < mappings.length; i++) {

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/MapDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/MapDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/MapDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/MapDataExchange.java Sun Jun 10 00:31:34 2007
@@ -20,7 +20,7 @@
 import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMapping;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -37,7 +37,7 @@
   public void initialize(Map properties) {
   }
 
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     if (!(parameterObject instanceof Map)) {
       throw new RuntimeException("Error.  Object passed into MapDataExchange was not an instance of Map.");
     }
@@ -51,7 +51,7 @@
     return data;
   }
 
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
     if (!(resultObject == null || resultObject instanceof Map)) {
       throw new RuntimeException("Error.  Object passed into MapDataExchange was not an instance of Map.");
     }
@@ -69,7 +69,7 @@
     return map;
   }
 
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
     if (!(parameterObject == null || parameterObject instanceof Map)) {
       throw new RuntimeException("Error.  Object passed into MapDataExchange was not an instance of Map.");
     }

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/PrimitiveDataExchange.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/PrimitiveDataExchange.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/PrimitiveDataExchange.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/exchange/PrimitiveDataExchange.java Sun Jun 10 00:31:34 2007
@@ -18,7 +18,7 @@
 import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap;
 import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping;
 import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 
 import java.util.Map;
 
@@ -34,7 +34,7 @@
   public void initialize(Map properties) {
   }
 
-  public Object[] getData(RequestScope request, ParameterMap parameterMap, Object parameterObject) {
+  public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
     ParameterMapping[] mappings = parameterMap.getParameterMappings();
     Object[] data = new Object[mappings.length];
     for (int i = 0; i < mappings.length; i++) {
@@ -43,11 +43,11 @@
     return data;
   }
 
-  public Object setData(RequestScope request, ResultMap resultMap, Object resultObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
     return values[0];
   }
 
-  public Object setData(RequestScope request, ParameterMap parameterMap, Object parameterObject, Object[] values) {
+  public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
     return values[0];
   }
 

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java Sun Jun 10 00:31:34 2007
@@ -23,7 +23,7 @@
 import com.ibatis.sqlmap.engine.mapping.statement.MappedStatement;
 import com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback;
 import com.ibatis.sqlmap.engine.scope.ErrorContext;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 import com.ibatis.sqlmap.engine.scope.SessionScope;
 import com.ibatis.sqlmap.engine.impl.ExtendedSqlMapClient;
 import com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate;
@@ -57,31 +57,31 @@
   /**
    * Execute an update
    *
-   * @param request    - the request scope
+   * @param statementScope    - the request scope
    * @param conn       - the database connection
    * @param sql        - the sql statement to execute
    * @param parameters - the parameters for the sql statement
    * @return - the number of records changed
    * @throws SQLException - if the update fails
    */
-  public int executeUpdate(RequestScope request, Connection conn, String sql, Object[] parameters) throws SQLException {
-    ErrorContext errorContext = request.getErrorContext();
+  public int executeUpdate(StatementScope statementScope, Connection conn, String sql, Object[] parameters) throws SQLException {
+    ErrorContext errorContext = statementScope.getErrorContext();
     errorContext.setActivity("executing update");
     errorContext.setObjectId(sql);
     PreparedStatement ps = null;
-    setupResultObjectFactory(request);
+    setupResultObjectFactory(statementScope);
     int rows = 0;
     try {
       errorContext.setMoreInfo("Check the SQL Statement (preparation failed).");
-      ps = prepareStatement(request.getSession(), conn, sql);
-      setStatementTimeout(request.getStatement(), ps);
+      ps = prepareStatement(statementScope.getSession(), conn, sql);
+      setStatementTimeout(statementScope.getStatement(), ps);
       errorContext.setMoreInfo("Check the parameters (set parameters failed).");
-      request.getParameterMap().setParameters(request, ps, parameters);
+      statementScope.getParameterMap().setParameters(statementScope, ps, parameters);
       errorContext.setMoreInfo("Check the statement (update failed).");
       ps.execute();
       rows = ps.getUpdateCount();
     } finally {
-      closeStatement(request.getSession(), ps);
+      closeStatement(statementScope.getSession(), ps);
     }
     return rows;
   }
@@ -89,36 +89,36 @@
   /**
    * Adds a statement to a batch
    *
-   * @param request    - the request scope
+   * @param statementScope    - the request scope
    * @param conn       - the database connection
    * @param sql        - the sql statement
    * @param parameters - the parameters for the statement
    * @throws SQLException - if the statement fails
    */
-  public void addBatch(RequestScope request, Connection conn, String sql, Object[] parameters) throws SQLException {
-    Batch batch = (Batch) request.getSession().getBatch();
+  public void addBatch(StatementScope statementScope, Connection conn, String sql, Object[] parameters) throws SQLException {
+    Batch batch = (Batch) statementScope.getSession().getBatch();
     if (batch == null) {
       batch = new Batch();
-      request.getSession().setBatch(batch);
+      statementScope.getSession().setBatch(batch);
     }
-    batch.addBatch(request, conn, sql, parameters);
+    batch.addBatch(statementScope, conn, sql, parameters);
   }
 
   /**
    * Execute a batch of statements
    *
-   * @param session - the session scope
+   * @param sessionScope - the session scope
    * @return - the number of rows impacted by the batch
    * @throws SQLException - if a statement fails
    */
-  public int executeBatch(SessionScope session) throws SQLException {
+  public int executeBatch(SessionScope sessionScope) throws SQLException {
     int rows = 0;
-    Batch batch = (Batch) session.getBatch();
+    Batch batch = (Batch) sessionScope.getBatch();
     if (batch != null) {
       try {
         rows = batch.executeBatch();
       } finally {
-        batch.cleanupBatch(session);
+        batch.cleanupBatch(sessionScope);
       }
     }
     return rows;
@@ -127,7 +127,7 @@
   /**
    * Execute a batch of statements
    *
-   * @param session - the session scope
+   * @param sessionScope - the session scope
    * @return - a List of BatchResult objects (may be null if no batch
    *         has been initiated).  There will be one BatchResult object in the
    *         list for each sub-batch executed
@@ -135,14 +135,14 @@
    *                        does not support batch statements
    * @throws BatchException if the driver throws BatchUpdateException
    */
-  public List executeBatchDetailed(SessionScope session) throws SQLException, BatchException {
+  public List executeBatchDetailed(SessionScope sessionScope) throws SQLException, BatchException {
     List answer = null;
-    Batch batch = (Batch) session.getBatch();
+    Batch batch = (Batch) sessionScope.getBatch();
     if (batch != null) {
       try {
         answer = batch.executeBatchDetailed();
       } finally {
-        batch.cleanupBatch(session);
+        batch.cleanupBatch(sessionScope);
       }
     }
     return answer;
@@ -151,7 +151,7 @@
   /**
    * Long form of the method to execute a query
    *
-   * @param request     - the request scope
+   * @param statementScope     - the request scope
    * @param conn        - the database connection
    * @param sql         - the SQL statement to execute
    * @param parameters  - the parameters for the statement
@@ -160,40 +160,40 @@
    * @param callback    - the row handler for the query
    * @throws SQLException - if the query fails
    */
-  public void executeQuery(RequestScope request, Connection conn, String sql, Object[] parameters, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
-    ErrorContext errorContext = request.getErrorContext();
+  public void executeQuery(StatementScope statementScope, Connection conn, String sql, Object[] parameters, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
+    ErrorContext errorContext = statementScope.getErrorContext();
     errorContext.setActivity("executing query");
     errorContext.setObjectId(sql);
     PreparedStatement ps = null;
     ResultSet rs = null;
-    setupResultObjectFactory(request);
+    setupResultObjectFactory(statementScope);
     try {
       errorContext.setMoreInfo("Check the SQL Statement (preparation failed).");
-      Integer rsType = request.getStatement().getResultSetType();
+      Integer rsType = statementScope.getStatement().getResultSetType();
       if (rsType != null) {
-        ps = prepareStatement(request.getSession(), conn, sql, rsType);
+        ps = prepareStatement(statementScope.getSession(), conn, sql, rsType);
       } else {
-        ps = prepareStatement(request.getSession(), conn, sql);
+        ps = prepareStatement(statementScope.getSession(), conn, sql);
       }
-      setStatementTimeout(request.getStatement(), ps);
-      Integer fetchSize = request.getStatement().getFetchSize();
+      setStatementTimeout(statementScope.getStatement(), ps);
+      Integer fetchSize = statementScope.getStatement().getFetchSize();
       if (fetchSize != null) {
         ps.setFetchSize(fetchSize.intValue());
       }
       errorContext.setMoreInfo("Check the parameters (set parameters failed).");
-      request.getParameterMap().setParameters(request, ps, parameters);
+      statementScope.getParameterMap().setParameters(statementScope, ps, parameters);
       errorContext.setMoreInfo("Check the statement (query failed).");
       ps.execute();
       errorContext.setMoreInfo("Check the results (failed to retrieve results).");
 
       // Begin ResultSet Handling
-      rs = handleMultipleResults(ps, request, skipResults, maxResults, callback);
+      rs = handleMultipleResults(ps, statementScope, skipResults, maxResults, callback);
       // End ResultSet Handling
     } finally {
       try {
         closeResultSet(rs);
       } finally {
-        closeStatement(request.getSession(), ps);
+        closeStatement(statementScope.getSession(), ps);
       }
     }
 
@@ -202,37 +202,37 @@
   /**
    * Execute a stored procedure that updates data
    *
-   * @param request    - the request scope
+   * @param statementScope    - the request scope
    * @param conn       - the database connection
    * @param sql        - the SQL to call the procedure
    * @param parameters - the parameters for the procedure
    * @return - the rows impacted by the procedure
    * @throws SQLException - if the procedure fails
    */
-  public int executeUpdateProcedure(RequestScope request, Connection conn, String sql, Object[] parameters) throws SQLException {
-    ErrorContext errorContext = request.getErrorContext();
+  public int executeUpdateProcedure(StatementScope statementScope, Connection conn, String sql, Object[] parameters) throws SQLException {
+    ErrorContext errorContext = statementScope.getErrorContext();
     errorContext.setActivity("executing update procedure");
     errorContext.setObjectId(sql);
     CallableStatement cs = null;
-    setupResultObjectFactory(request);
+    setupResultObjectFactory(statementScope);
     int rows = 0;
     try {
       errorContext.setMoreInfo("Check the SQL Statement (preparation failed).");
-      cs = prepareCall(request.getSession(), conn, sql);
-      setStatementTimeout(request.getStatement(), cs);
-      ParameterMap parameterMap = request.getParameterMap();
+      cs = prepareCall(statementScope.getSession(), conn, sql);
+      setStatementTimeout(statementScope.getStatement(), cs);
+      ParameterMap parameterMap = statementScope.getParameterMap();
       ParameterMapping[] mappings = parameterMap.getParameterMappings();
       errorContext.setMoreInfo("Check the output parameters (register output parameters failed).");
       registerOutputParameters(cs, mappings);
       errorContext.setMoreInfo("Check the parameters (set parameters failed).");
-      parameterMap.setParameters(request, cs, parameters);
+      parameterMap.setParameters(statementScope, cs, parameters);
       errorContext.setMoreInfo("Check the statement (update procedure failed).");
       cs.execute();
       rows = cs.getUpdateCount();
       errorContext.setMoreInfo("Check the output parameters (retrieval of output parameters failed).");
-      retrieveOutputParameters(request, cs, mappings, parameters, null);
+      retrieveOutputParameters(statementScope, cs, mappings, parameters, null);
     } finally {
-      closeStatement(request.getSession(), cs);
+      closeStatement(statementScope.getSession(), cs);
     }
     return rows;
   }
@@ -240,7 +240,7 @@
   /**
    * Execute a stored procedure
    *
-   * @param request     - the request scope
+   * @param statementScope     - the request scope
    * @param conn        - the database connection
    * @param sql         - the sql to call the procedure
    * @param parameters  - the parameters for the procedure
@@ -249,61 +249,61 @@
    * @param callback    - a row handler for processing the results
    * @throws SQLException - if the procedure fails
    */
-  public void executeQueryProcedure(RequestScope request, Connection conn, String sql, Object[] parameters, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
-    ErrorContext errorContext = request.getErrorContext();
+  public void executeQueryProcedure(StatementScope statementScope, Connection conn, String sql, Object[] parameters, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
+    ErrorContext errorContext = statementScope.getErrorContext();
     errorContext.setActivity("executing query procedure");
     errorContext.setObjectId(sql);
     CallableStatement cs = null;
     ResultSet rs = null;
-    setupResultObjectFactory(request);
+    setupResultObjectFactory(statementScope);
     try {
       errorContext.setMoreInfo("Check the SQL Statement (preparation failed).");
-      Integer rsType = request.getStatement().getResultSetType();
+      Integer rsType = statementScope.getStatement().getResultSetType();
       if (rsType != null) {
-        cs = prepareCall(request.getSession(), conn, sql, rsType);
+        cs = prepareCall(statementScope.getSession(), conn, sql, rsType);
       } else {
-        cs = prepareCall(request.getSession(), conn, sql);
+        cs = prepareCall(statementScope.getSession(), conn, sql);
       }
-      setStatementTimeout(request.getStatement(), cs);
-      Integer fetchSize = request.getStatement().getFetchSize();
+      setStatementTimeout(statementScope.getStatement(), cs);
+      Integer fetchSize = statementScope.getStatement().getFetchSize();
       if (fetchSize != null) {
         cs.setFetchSize(fetchSize.intValue());
       }
-      ParameterMap parameterMap = request.getParameterMap();
+      ParameterMap parameterMap = statementScope.getParameterMap();
       ParameterMapping[] mappings = parameterMap.getParameterMappings();
       errorContext.setMoreInfo("Check the output parameters (register output parameters failed).");
       registerOutputParameters(cs, mappings);
       errorContext.setMoreInfo("Check the parameters (set parameters failed).");
-      parameterMap.setParameters(request, cs, parameters);
+      parameterMap.setParameters(statementScope, cs, parameters);
       errorContext.setMoreInfo("Check the statement (update procedure failed).");
       cs.execute();
       errorContext.setMoreInfo("Check the results (failed to retrieve results).");
 
       // Begin ResultSet Handling
-      rs = handleMultipleResults(cs, request, skipResults, maxResults, callback);
+      rs = handleMultipleResults(cs, statementScope, skipResults, maxResults, callback);
       // End ResultSet Handling
       errorContext.setMoreInfo("Check the output parameters (retrieval of output parameters failed).");
-      retrieveOutputParameters(request, cs, mappings, parameters, callback);
+      retrieveOutputParameters(statementScope, cs, mappings, parameters, callback);
 
     } finally {
       try {
         closeResultSet(rs);
       } finally {
-        closeStatement(request.getSession(), cs);
+        closeStatement(statementScope.getSession(), cs);
       }
     }
   }
 
-  private ResultSet handleMultipleResults(PreparedStatement ps, RequestScope request, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
+  private ResultSet handleMultipleResults(PreparedStatement ps, StatementScope statementScope, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
     ResultSet rs;
     rs = getFirstResultSet(ps);
     if (rs != null) {
-      handleResults(request, rs, skipResults, maxResults, callback);
+      handleResults(statementScope, rs, skipResults, maxResults, callback);
     }
 
     // Multiple ResultSet handling
     if (callback.getRowHandler() instanceof DefaultRowHandler) {
-      MappedStatement statement = request.getStatement();
+      MappedStatement statement = statementScope.getStatement();
       DefaultRowHandler defaultRowHandler = ((DefaultRowHandler) callback.getRowHandler());
       if (statement.hasMultipleResultMaps()) {
         List multipleResults = new ArrayList();
@@ -313,15 +313,15 @@
         while (moveToNextResultsSafely(ps)) {
           if (i >= resultMaps.length) break;
           ResultMap rm = resultMaps[i];
-          request.setResultMap(rm);
+          statementScope.setResultMap(rm);
           rs = ps.getResultSet();
           DefaultRowHandler rh = new DefaultRowHandler();
-          handleResults(request, rs, skipResults, maxResults, new RowHandlerCallback(rm, null, rh));
+          handleResults(statementScope, rs, skipResults, maxResults, new RowHandlerCallback(rm, null, rh));
           multipleResults.add(rh.getList());
           i++;
         }
         defaultRowHandler.setList(multipleResults);
-        request.setResultMap(statement.getResultMap());
+        statementScope.setResultMap(statement.getResultMap());
       } else {
         while (moveToNextResultsSafely(ps)) ;
       }
@@ -357,10 +357,10 @@
     return stmt.getMoreResults();
   }
 
-  private void handleResults(RequestScope request, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
+  private void handleResults(StatementScope statementScope, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
     try {
-      request.setResultSet(rs);
-      ResultMap resultMap = request.getResultMap();
+      statementScope.setResultSet(rs);
+      ResultMap resultMap = statementScope.getResultMap();
       if (resultMap != null) {
         // Skip Results
         if (rs.getType() != ResultSet.TYPE_FORWARD_ONLY) {
@@ -378,17 +378,17 @@
         // Get Results
         int resultsFetched = 0;
         while ((maxResults == SqlExecutor.NO_MAXIMUM_RESULTS || resultsFetched < maxResults) && rs.next()) {
-          Object[] columnValues = resultMap.resolveSubMap(request, rs).getResults(request, rs);
-          callback.handleResultObject(request, columnValues, rs);
+          Object[] columnValues = resultMap.resolveSubMap(statementScope, rs).getResults(statementScope, rs);
+          callback.handleResultObject(statementScope, columnValues, rs);
           resultsFetched++;
         }
       }
     } finally {
-      request.setResultSet(null);
+      statementScope.setResultSet(null);
     }
   }
 
-  private void retrieveOutputParameters(RequestScope request, CallableStatement cs, ParameterMapping[] mappings, Object[] parameters, RowHandlerCallback callback) throws SQLException {
+  private void retrieveOutputParameters(StatementScope statementScope, CallableStatement cs, ParameterMapping[] mappings, Object[] parameters, RowHandlerCallback callback) throws SQLException {
     for (int i = 0; i < mappings.length; i++) {
       BasicParameterMapping mapping = ((BasicParameterMapping) mappings[i]);
       if (mapping.isOutputAllowed()) {
@@ -396,14 +396,14 @@
           ResultSet rs = (ResultSet) cs.getObject(i + 1);
           ResultMap resultMap;
           if (mapping.getResultMapName() == null) {
-            resultMap = request.getResultMap();
-            handleOutputParameterResults(request, resultMap, rs, callback);
+            resultMap = statementScope.getResultMap();
+            handleOutputParameterResults(statementScope, resultMap, rs, callback);
           } else {
-            ExtendedSqlMapClient client = (ExtendedSqlMapClient) request.getSession().getSqlMapClient();
+            ExtendedSqlMapClient client = (ExtendedSqlMapClient) statementScope.getSession().getSqlMapClient();
             resultMap = client.getDelegate().getResultMap(mapping.getResultMapName());
             DefaultRowHandler rowHandler = new DefaultRowHandler();
             RowHandlerCallback handlerCallback = new RowHandlerCallback(resultMap, null, rowHandler);
-            handleOutputParameterResults(request, resultMap, rs, handlerCallback);
+            handleOutputParameterResults(statementScope, resultMap, rs, handlerCallback);
             parameters[i] = rowHandler.getList();
           }
           rs.close();
@@ -432,85 +432,85 @@
     }
   }
 
-  private void handleOutputParameterResults(RequestScope request, ResultMap resultMap, ResultSet rs, RowHandlerCallback callback) throws SQLException {
-    ResultMap orig = request.getResultMap();
+  private void handleOutputParameterResults(StatementScope statementScope, ResultMap resultMap, ResultSet rs, RowHandlerCallback callback) throws SQLException {
+    ResultMap orig = statementScope.getResultMap();
     try {
-      request.setResultSet(rs);
+      statementScope.setResultSet(rs);
       if (resultMap != null) {
-        request.setResultMap(resultMap);
+        statementScope.setResultMap(resultMap);
 
         // Get Results
         while (rs.next()) {
-          Object[] columnValues = resultMap.resolveSubMap(request, rs).getResults(request, rs);
-          callback.handleResultObject(request, columnValues, rs);
+          Object[] columnValues = resultMap.resolveSubMap(statementScope, rs).getResults(statementScope, rs);
+          callback.handleResultObject(statementScope, columnValues, rs);
         }
       }
     } finally {
-      request.setResultSet(null);
-      request.setResultMap(orig);
+      statementScope.setResultSet(null);
+      statementScope.setResultMap(orig);
     }
   }
 
   /**
    * Clean up any batches on the session
    *
-   * @param session - the session to clean up
+   * @param sessionScope - the session to clean up
    */
-  public void cleanup(SessionScope session) {
-    Batch batch = (Batch) session.getBatch();
+  public void cleanup(SessionScope sessionScope) {
+    Batch batch = (Batch) sessionScope.getBatch();
     if (batch != null) {
-      batch.cleanupBatch(session);
-      session.setBatch(null);
+      batch.cleanupBatch(sessionScope);
+      sessionScope.setBatch(null);
     }
   }
 
-  private PreparedStatement prepareStatement(SessionScope session, Connection conn, String sql, Integer rsType) throws SQLException {
-    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
-    if (session.hasPreparedStatementFor(sql)) {
-      return session.getPreparedStatement((sql));
+  private PreparedStatement prepareStatement(SessionScope sessionScope, Connection conn, String sql, Integer rsType) throws SQLException {
+    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient) sessionScope.getSqlMapExecutor()).getDelegate();
+    if (sessionScope.hasPreparedStatementFor(sql)) {
+      return sessionScope.getPreparedStatement((sql));
     } else {
       PreparedStatement ps = conn.prepareStatement(sql, rsType.intValue(), ResultSet.CONCUR_READ_ONLY);
-      session.putPreparedStatement(delegate, sql, ps);
+      sessionScope.putPreparedStatement(delegate, sql, ps);
       return ps;
     }
   }
 
-  private CallableStatement prepareCall(SessionScope session, Connection conn, String sql, Integer rsType) throws SQLException {
-    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
-    if (session.hasPreparedStatementFor(sql)) {
-      return (CallableStatement) session.getPreparedStatement((sql));
+  private CallableStatement prepareCall(SessionScope sessionScope, Connection conn, String sql, Integer rsType) throws SQLException {
+    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient) sessionScope.getSqlMapExecutor()).getDelegate();
+    if (sessionScope.hasPreparedStatementFor(sql)) {
+      return (CallableStatement) sessionScope.getPreparedStatement((sql));
     } else {
       CallableStatement cs = conn.prepareCall(sql, rsType.intValue(), ResultSet.CONCUR_READ_ONLY);
-      session.putPreparedStatement(delegate, sql, cs);
+      sessionScope.putPreparedStatement(delegate, sql, cs);
       return cs;
     }
   }
 
-  private static PreparedStatement prepareStatement(SessionScope session, Connection conn, String sql) throws SQLException {
-    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
-    if (session.hasPreparedStatementFor(sql)) {
-      return session.getPreparedStatement((sql));
+  private static PreparedStatement prepareStatement(SessionScope sessionScope, Connection conn, String sql) throws SQLException {
+    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient) sessionScope.getSqlMapExecutor()).getDelegate();
+    if (sessionScope.hasPreparedStatementFor(sql)) {
+      return sessionScope.getPreparedStatement((sql));
     } else {
       PreparedStatement ps = conn.prepareStatement(sql);
-      session.putPreparedStatement(delegate, sql, ps);
+      sessionScope.putPreparedStatement(delegate, sql, ps);
       return ps;
     }
   }
 
-  private CallableStatement prepareCall(SessionScope session, Connection conn, String sql) throws SQLException {
-    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient)session.getSqlMapExecutor()).getDelegate();
-    if (session.hasPreparedStatementFor(sql)) {
-      return (CallableStatement) session.getPreparedStatement((sql));
+  private CallableStatement prepareCall(SessionScope sessionScope, Connection conn, String sql) throws SQLException {
+    SqlMapExecutorDelegate delegate = ((ExtendedSqlMapClient) sessionScope.getSqlMapExecutor()).getDelegate();
+    if (sessionScope.hasPreparedStatementFor(sql)) {
+      return (CallableStatement) sessionScope.getPreparedStatement((sql));
     } else {
       CallableStatement cs = conn.prepareCall(sql);
-      session.putPreparedStatement(delegate, sql, cs);
+      sessionScope.putPreparedStatement(delegate, sql, cs);
       return cs;
     }
   }
 
-  private static void closeStatement(SessionScope session, PreparedStatement ps) {
+  private static void closeStatement(SessionScope sessionScope, PreparedStatement ps) {
     if (ps != null) {
-      if (!session.hasPreparedStatement(ps)) {
+      if (!sessionScope.hasPreparedStatement(ps)) {
         try {
           ps.close();
         } catch (SQLException e) {
@@ -568,25 +568,25 @@
     /**
      * Add a prepared statement to the batch
      *
-     * @param request    - the request scope
+     * @param statementScope    - the request scope
      * @param conn       - the database connection
      * @param sql        - the SQL to add
      * @param parameters - the parameters for the SQL
      * @throws SQLException - if the prepare for the SQL fails
      */
-    public void addBatch(RequestScope request, Connection conn, String sql, Object[] parameters) throws SQLException {
+    public void addBatch(StatementScope statementScope, Connection conn, String sql, Object[] parameters) throws SQLException {
       PreparedStatement ps = null;
       if (currentSql != null && sql.hashCode() == currentSql.hashCode() && sql.length() == currentSql.length()) {
         int last = statementList.size() - 1;
         ps = (PreparedStatement) statementList.get(last);
       } else {
-        ps = prepareStatement(request.getSession(), conn, sql);
-        setStatementTimeout(request.getStatement(), ps);
+        ps = prepareStatement(statementScope.getSession(), conn, sql);
+        setStatementTimeout(statementScope.getStatement(), ps);
         currentSql = sql;
         statementList.add(ps);
-        batchResultList.add(new BatchResult(request.getStatement().getId(), sql));
+        batchResultList.add(new BatchResult(statementScope.getStatement().getId(), sql));
       }
-      request.getParameterMap().setParameters(request, ps, parameters);
+      statementScope.getParameterMap().setParameters(statementScope, ps, parameters);
       ps.addBatch();
       size++;
     }
@@ -657,12 +657,12 @@
     /**
      * Close all the statements in the batch and clear all the statements
      *
-     * @param session
+     * @param sessionScope
      */
-    public void cleanupBatch(SessionScope session) {
+    public void cleanupBatch(SessionScope sessionScope) {
       for (int i = 0, n = statementList.size(); i < n; i++) {
         PreparedStatement ps = (PreparedStatement) statementList.get(i);
-        closeStatement(session, ps);
+        closeStatement(sessionScope, ps);
       }
       currentSql = null;
       statementList.clear();
@@ -671,9 +671,9 @@
     }
   }
 
-  private void setupResultObjectFactory(RequestScope request) {
-    ExtendedSqlMapClient client = (ExtendedSqlMapClient) request.getSession().getSqlMapClient();
+  private void setupResultObjectFactory(StatementScope statementScope) {
+    ExtendedSqlMapClient client = (ExtendedSqlMapClient) statementScope.getSession().getSqlMapClient();
     ResultObjectFactoryUtil.setResultObjectFactory(client.getResultObjectFactory());
-    ResultObjectFactoryUtil.setStatementId(request.getStatement().getId());
+    ResultObjectFactoryUtil.setStatementId(statementScope.getStatement().getId());
   }
 }

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?view=diff&rev=545852&r1=545851&r2=545852
==============================================================================
--- 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 Jun 10 00:31:34 2007
@@ -19,7 +19,6 @@
 import com.ibatis.common.beans.ProbeFactory;
 import com.ibatis.common.jdbc.exception.NestedSQLException;
 import com.ibatis.common.util.PaginatedList;
-import com.ibatis.common.util.ThrottledPool;
 import com.ibatis.sqlmap.client.SqlMapException;
 import com.ibatis.sqlmap.client.event.RowHandler;
 import com.ibatis.sqlmap.engine.cache.CacheKey;
@@ -34,7 +33,7 @@
 import com.ibatis.sqlmap.engine.mapping.statement.MappedStatement;
 import com.ibatis.sqlmap.engine.mapping.statement.PaginatedDataList;
 import com.ibatis.sqlmap.engine.mapping.statement.SelectKeyStatement;
-import com.ibatis.sqlmap.engine.scope.RequestScope;
+import com.ibatis.sqlmap.engine.scope.StatementScope;
 import com.ibatis.sqlmap.engine.scope.SessionScope;
 import com.ibatis.sqlmap.engine.transaction.Transaction;
 import com.ibatis.sqlmap.engine.transaction.TransactionException;
@@ -58,27 +57,10 @@
 
   private static final Probe PROBE = ProbeFactory.getProbe();
 
-  /**
-   * The default maximum number of requests
-   */
-  public static final int DEFAULT_MAX_REQUESTS = 512;
-  /**
-   * The default maximum number of sessions
-   */
-  public static final int DEFAULT_MAX_SESSIONS = 128;
-  /**
-   * The default maximum number of transactions
-   */
-  public static final int DEFAULT_MAX_TRANSACTIONS = 32;
-
   private boolean lazyLoadingEnabled;
   private boolean cacheModelsEnabled;
   private boolean enhancementEnabled;
 
-  private int maxRequests = DEFAULT_MAX_REQUESTS;
-  private int maxSessions = DEFAULT_MAX_SESSIONS;
-  private int maxTransactions = DEFAULT_MAX_TRANSACTIONS;
-
   private TransactionManager txManager;
 
   private HashMap mappedStatements;
@@ -86,9 +68,6 @@
   private HashMap resultMaps;
   private HashMap parameterMaps;
 
-  private ThrottledPool requestPool;
-  private ThrottledPool sessionPool;
-
   protected SqlExecutor sqlExecutor;
   private TypeHandlerFactory typeHandlerFactory;
   private DataExchangeFactory dataExchangeFactory;
@@ -105,9 +84,6 @@
     resultMaps = new HashMap();
     parameterMaps = new HashMap();
 
-    requestPool = new ThrottledPool(RequestScope.class, DEFAULT_MAX_REQUESTS);
-    sessionPool = new ThrottledPool(SessionScope.class, DEFAULT_MAX_SESSIONS);
-
     sqlExecutor = new SqlExecutor();
     typeHandlerFactory = new TypeHandlerFactory();
     dataExchangeFactory = new DataExchangeFactory(typeHandlerFactory);
@@ -186,62 +162,6 @@
   }
 
   /**
-   * Getter for the maximum number of requests
-   *
-   * @return - the maximum number of requests
-   */
-  public int getMaxRequests() {
-    return maxRequests;
-  }
-
-  /**
-   * Setter for the maximum number of requests
-   *
-   * @param maxRequests - the maximum number of requests
-   */
-  public void setMaxRequests(int maxRequests) {
-    this.maxRequests = maxRequests;
-    requestPool = new ThrottledPool(RequestScope.class, maxRequests);
-  }
-
-  /**
-   * Getter for the maximum number of sessions
-   *
-   * @return - the maximum number of sessions
-   */
-  public int getMaxSessions() {
-    return maxSessions;
-  }
-
-  /**
-   * Setter for the maximum number of sessions
-   *
-   * @param maxSessions - the maximum number of sessions
-   */
-  public void setMaxSessions(int maxSessions) {
-    this.maxSessions = maxSessions;
-    this.sessionPool = new ThrottledPool(SessionScope.class, maxSessions);
-  }
-
-  /**
-   * Getter for the the maximum number of transactions
-   *
-   * @return - the maximum number of transactions
-   */
-  public int getMaxTransactions() {
-    return maxTransactions;
-  }
-
-  /**
-   * Setter for the maximum number of transactions
-   *
-   * @param maxTransactions - the maximum number of transactions
-   */
-  public void setMaxTransactions(int maxTransactions) {
-    this.maxTransactions = maxTransactions;
-  }
-
-  /**
    * Getter for the transaction manager
    *
    * @return - the transaction manager
@@ -417,21 +337,21 @@
   /**
    * Call an insert statement by ID
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @param id      - the statement ID
    * @param param   - the parameter object
    * @return - the generated key (or null)
    * @throws SQLException - if the insert fails
    */
-  public Object insert(SessionScope session, String id, Object param) throws SQLException {
+  public Object insert(SessionScope sessionScope, String id, Object param) throws SQLException {
     Object generatedKey = null;
 
     MappedStatement ms = getMappedStatement(id);
-    Transaction trans = getTransaction(session);
+    Transaction trans = getTransaction(sessionScope);
     boolean autoStart = trans == null;
 
     try {
-      trans = autoStartTransaction(session, autoStart, trans);
+      trans = autoStartTransaction(sessionScope, autoStart, trans);
 
       SelectKeyStatement selectKeyStatement = null;
       if (ms instanceof InsertStatement) {
@@ -439,43 +359,43 @@
       }
 
       if (selectKeyStatement != null && !selectKeyStatement.isRunAfterSQL()) {
-        generatedKey = executeSelectKey(session, trans, ms, param);
+        generatedKey = executeSelectKey(sessionScope, trans, ms, param);
       }
 
-      RequestScope request = popRequest(session, ms);
+      StatementScope statementScope = beginStatementScope(sessionScope, ms);
       try {
-        ms.executeUpdate(request, trans, param);
+        ms.executeUpdate(statementScope, trans, param);
       } finally {
-        pushRequest(request);
+        endStatementScope(statementScope);
       }
 
       if (selectKeyStatement != null && selectKeyStatement.isRunAfterSQL()) {
-        generatedKey = executeSelectKey(session, trans, ms, param);
+        generatedKey = executeSelectKey(sessionScope, trans, ms, param);
       }
 
-      autoCommitTransaction(session, autoStart);
+      autoCommitTransaction(sessionScope, autoStart);
     } finally {
-      autoEndTransaction(session, autoStart);
+      autoEndTransaction(sessionScope, autoStart);
     }
 
     return generatedKey;
   }
 
-  private Object executeSelectKey(SessionScope session, Transaction trans, MappedStatement ms, Object param) throws SQLException {
+  private Object executeSelectKey(SessionScope sessionScope, Transaction trans, MappedStatement ms, Object param) throws SQLException {
     Object generatedKey = null;
-    RequestScope request;
+    StatementScope statementScope;
     InsertStatement insert = (InsertStatement) ms;
     SelectKeyStatement selectKeyStatement = insert.getSelectKeyStatement();
     if (selectKeyStatement != null) {
-      request = popRequest(session, selectKeyStatement);
+      statementScope = beginStatementScope(sessionScope, selectKeyStatement);
       try {
-        generatedKey = selectKeyStatement.executeQueryForObject(request, trans, param, null);
+        generatedKey = selectKeyStatement.executeQueryForObject(statementScope, trans, param, null);
         String keyProp = selectKeyStatement.getKeyProperty();
         if (keyProp != null) {
           PROBE.setObject(param, keyProp, generatedKey);
         }
       } finally {
-        pushRequest(request);
+        endStatementScope(statementScope);
       }
     }
     return generatedKey;
@@ -484,32 +404,32 @@
   /**
    * Execute an update statement
    *
-   * @param session - the session scope
+   * @param sessionScope - the session scope
    * @param id      - the statement ID
    * @param param   - the parameter object
    * @return - the number of rows updated
    * @throws SQLException - if the update fails
    */
-  public int update(SessionScope session, String id, Object param) throws SQLException {
+  public int update(SessionScope sessionScope, String id, Object param) throws SQLException {
     int rows = 0;
 
     MappedStatement ms = getMappedStatement(id);
-    Transaction trans = getTransaction(session);
+    Transaction trans = getTransaction(sessionScope);
     boolean autoStart = trans == null;
 
     try {
-      trans = autoStartTransaction(session, autoStart, trans);
+      trans = autoStartTransaction(sessionScope, autoStart, trans);
 
-      RequestScope request = popRequest(session, ms);
+      StatementScope statementScope = beginStatementScope(sessionScope, ms);
       try {
-        rows = ms.executeUpdate(request, trans, param);
+        rows = ms.executeUpdate(statementScope, trans, param);
       } finally {
-        pushRequest(request);
+        endStatementScope(statementScope);
       }
 
-      autoCommitTransaction(session, autoStart);
+      autoCommitTransaction(sessionScope, autoStart);
     } finally {
-      autoEndTransaction(session, autoStart);
+      autoEndTransaction(sessionScope, autoStart);
     }
 
     return rows;
@@ -518,59 +438,59 @@
   /**
    * Execute a delete statement
    *
-   * @param session - the session scope
+   * @param sessionScope - the session scope
    * @param id      - the statement ID
    * @param param   - the parameter object
    * @return - the number of rows deleted
    * @throws SQLException - if the delete fails
    */
-  public int delete(SessionScope session, String id, Object param) throws SQLException {
-    return update(session, id, param);
+  public int delete(SessionScope sessionScope, String id, Object param) throws SQLException {
+    return update(sessionScope, id, param);
   }
 
   /**
    * Execute a select for a single object
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @return - the result of the query
    * @throws SQLException - if the query fails
    */
-  public Object queryForObject(SessionScope session, String id, Object paramObject) throws SQLException {
-    return queryForObject(session, id, paramObject, null);
+  public Object queryForObject(SessionScope sessionScope, String id, Object paramObject) throws SQLException {
+    return queryForObject(sessionScope, id, paramObject, null);
   }
 
   /**
    * Execute a select for a single object
    *
-   * @param session      - the session scope
+   * @param sessionScope      - the session scope
    * @param id           - the statement ID
    * @param paramObject  - the parameter object
    * @param resultObject - the result object (if not supplied or null, a new object will be created)
    * @return - the result of the query
    * @throws SQLException - if the query fails
    */
-  public Object queryForObject(SessionScope session, String id, Object paramObject, Object resultObject) throws SQLException {
+  public Object queryForObject(SessionScope sessionScope, String id, Object paramObject, Object resultObject) throws SQLException {
     Object object = null;
 
     MappedStatement ms = getMappedStatement(id);
-    Transaction trans = getTransaction(session);
+    Transaction trans = getTransaction(sessionScope);
     boolean autoStart = trans == null;
 
     try {
-      trans = autoStartTransaction(session, autoStart, trans);
+      trans = autoStartTransaction(sessionScope, autoStart, trans);
 
-      RequestScope request = popRequest(session, ms);
+      StatementScope statementScope = beginStatementScope(sessionScope, ms);
       try {
-        object = ms.executeQueryForObject(request, trans, paramObject, resultObject);
+        object = ms.executeQueryForObject(statementScope, trans, paramObject, resultObject);
       } finally {
-        pushRequest(request);
+        endStatementScope(statementScope);
       }
 
-      autoCommitTransaction(session, autoStart);
+      autoCommitTransaction(sessionScope, autoStart);
     } finally {
-      autoEndTransaction(session, autoStart);
+      autoEndTransaction(sessionScope, autoStart);
     }
 
     return object;
@@ -579,20 +499,20 @@
   /**
    * Execute a query for a list
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @return - the data list
    * @throws SQLException - if the query fails
    */
-  public List queryForList(SessionScope session, String id, Object paramObject) throws SQLException {
-    return queryForList(session, id, paramObject, SqlExecutor.NO_SKIPPED_RESULTS, SqlExecutor.NO_MAXIMUM_RESULTS);
+  public List queryForList(SessionScope sessionScope, String id, Object paramObject) throws SQLException {
+    return queryForList(sessionScope, id, paramObject, SqlExecutor.NO_SKIPPED_RESULTS, SqlExecutor.NO_MAXIMUM_RESULTS);
   }
 
   /**
    * Execute a query for a list
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @param skip        - the number of rows to skip
@@ -600,26 +520,26 @@
    * @return - the data list
    * @throws SQLException - if the query fails
    */
-  public List queryForList(SessionScope session, String id, Object paramObject, int skip, int max) throws SQLException {
+  public List queryForList(SessionScope sessionScope, String id, Object paramObject, int skip, int max) throws SQLException {
     List list = null;
 
     MappedStatement ms = getMappedStatement(id);
-    Transaction trans = getTransaction(session);
+    Transaction trans = getTransaction(sessionScope);
     boolean autoStart = trans == null;
 
     try {
-      trans = autoStartTransaction(session, autoStart, trans);
+      trans = autoStartTransaction(sessionScope, autoStart, trans);
 
-      RequestScope request = popRequest(session, ms);
+      StatementScope statementScope = beginStatementScope(sessionScope, ms);
       try {
-        list = ms.executeQueryForList(request, trans, paramObject, skip, max);
+        list = ms.executeQueryForList(statementScope, trans, paramObject, skip, max);
       } finally {
-        pushRequest(request);
+        endStatementScope(statementScope);
       }
 
-      autoCommitTransaction(session, autoStart);
+      autoCommitTransaction(sessionScope, autoStart);
     } finally {
-      autoEndTransaction(session, autoStart);
+      autoEndTransaction(sessionScope, autoStart);
     }
 
     return list;
@@ -629,31 +549,31 @@
    * Execute a query with a row handler.
    * The row handler is called once per row in the query results.
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @param rowHandler  - the row handler
    * @throws SQLException - if the query fails
    */
-  public void queryWithRowHandler(SessionScope session, String id, Object paramObject, RowHandler rowHandler) throws SQLException {
+  public void queryWithRowHandler(SessionScope sessionScope, String id, Object paramObject, RowHandler rowHandler) throws SQLException {
 
     MappedStatement ms = getMappedStatement(id);
-    Transaction trans = getTransaction(session);
+    Transaction trans = getTransaction(sessionScope);
     boolean autoStart = trans == null;
 
     try {
-      trans = autoStartTransaction(session, autoStart, trans);
+      trans = autoStartTransaction(sessionScope, autoStart, trans);
 
-      RequestScope request = popRequest(session, ms);
+      StatementScope statementScope = beginStatementScope(sessionScope, ms);
       try {
-        ms.executeQueryWithRowHandler(request, trans, paramObject, rowHandler);
+        ms.executeQueryWithRowHandler(statementScope, trans, paramObject, rowHandler);
       } finally {
-        pushRequest(request);
+        endStatementScope(statementScope);
       }
 
-      autoCommitTransaction(session, autoStart);
+      autoCommitTransaction(sessionScope, autoStart);
     } finally {
-      autoEndTransaction(session, autoStart);
+      autoEndTransaction(sessionScope, autoStart);
     }
 
   }
@@ -661,7 +581,7 @@
   /**
    * Execute a query and return a paginated list
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @param pageSize    - the page size
@@ -669,30 +589,30 @@
    * @throws SQLException - if the query fails
    * @deprecated All paginated list features have been deprecated
    */
-  public PaginatedList queryForPaginatedList(SessionScope session, String id, Object paramObject, int pageSize) throws SQLException {
-    return new PaginatedDataList(session.getSqlMapExecutor(), id, paramObject, pageSize);
+  public PaginatedList queryForPaginatedList(SessionScope sessionScope, String id, Object paramObject, int pageSize) throws SQLException {
+    return new PaginatedDataList(sessionScope.getSqlMapExecutor(), id, paramObject, pageSize);
   }
 
   /**
    * Execute a query for a map.
    * The map has the table key as the key, and the results as the map data
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @param keyProp     - the key property (from the results for the map)
    * @return - the Map
    * @throws SQLException - if the query fails
    */
-  public Map queryForMap(SessionScope session, String id, Object paramObject, String keyProp) throws SQLException {
-    return queryForMap(session, id, paramObject, keyProp, null);
+  public Map queryForMap(SessionScope sessionScope, String id, Object paramObject, String keyProp) throws SQLException {
+    return queryForMap(sessionScope, id, paramObject, keyProp, null);
   }
 
   /**
    * Execute a query for a map.
    * The map has the table key as the key, and a property from the results as the map data
    *
-   * @param session     - the session scope
+   * @param sessionScope     - the session scope
    * @param id          - the statement ID
    * @param paramObject - the parameter object
    * @param keyProp     - the property for the map key
@@ -700,10 +620,10 @@
    * @return - the Map
    * @throws SQLException - if the query fails
    */
-  public Map queryForMap(SessionScope session, String id, Object paramObject, String keyProp, String valueProp) throws SQLException {
+  public Map queryForMap(SessionScope sessionScope, String id, Object paramObject, String keyProp, String valueProp) throws SQLException {
     Map map = new HashMap();
 
-    List list = queryForList(session, id, paramObject);
+    List list = queryForList(sessionScope, id, paramObject);
 
     for (int i = 0, n = list.size(); i < n; i++) {
       Object object = list.get(i);
@@ -724,12 +644,12 @@
   /**
    * Start a transaction on the session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @throws SQLException - if the transaction could not be started
    */
-  public void startTransaction(SessionScope session) throws SQLException {
+  public void startTransaction(SessionScope sessionScope) throws SQLException {
     try {
-      txManager.begin(session);
+      txManager.begin(sessionScope);
     } catch (TransactionException e) {
       throw new NestedSQLException("Could not start transaction.  Cause: " + e, e);
     }
@@ -738,12 +658,12 @@
   /**
    * Start a transaction on the session with the specified isolation level.
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @throws SQLException - if the transaction could not be started
    */
-  public void startTransaction(SessionScope session, int transactionIsolation) throws SQLException {
+  public void startTransaction(SessionScope sessionScope, int transactionIsolation) throws SQLException {
     try {
-      txManager.begin(session, transactionIsolation);
+      txManager.begin(sessionScope, transactionIsolation);
     } catch (TransactionException e) {
       throw new NestedSQLException("Could not start transaction.  Cause: " + e, e);
     }
@@ -752,17 +672,17 @@
   /**
    * Commit the transaction on a session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @throws SQLException - if the transaction could not be committed
    */
-  public void commitTransaction(SessionScope session) throws SQLException {
+  public void commitTransaction(SessionScope sessionScope) throws SQLException {
     try {
       // Auto batch execution
-      if (session.isInBatch()) {
-        executeBatch(session);
+      if (sessionScope.isInBatch()) {
+        executeBatch(sessionScope);
       }
-      sqlExecutor.cleanup(session);
-      txManager.commit(session);
+      sqlExecutor.cleanup(sessionScope);
+      txManager.commit(sessionScope);
     } catch (TransactionException e) {
       throw new NestedSQLException("Could not commit transaction.  Cause: " + e, e);
     }
@@ -771,15 +691,15 @@
   /**
    * End the transaction on a session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @throws SQLException - if the transaction could not be ended
    */
-  public void endTransaction(SessionScope session) throws SQLException {
+  public void endTransaction(SessionScope sessionScope) throws SQLException {
     try {
       try {
-        sqlExecutor.cleanup(session);
+        sqlExecutor.cleanup(sessionScope);
       } finally {
-        txManager.end(session);
+        txManager.end(sessionScope);
       }
     } catch (TransactionException e) {
       throw new NestedSQLException("Error while ending transaction.  Cause: " + e, e);
@@ -789,28 +709,28 @@
   /**
    * Start a batch for a session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    */
-  public void startBatch(SessionScope session) {
-    session.setInBatch(true);
+  public void startBatch(SessionScope sessionScope) {
+    sessionScope.setInBatch(true);
   }
 
   /**
    * Execute a batch for a session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @return - the number of rows impacted by the batch
    * @throws SQLException - if the batch fails
    */
-  public int executeBatch(SessionScope session) throws SQLException {
-    session.setInBatch(false);
-    return sqlExecutor.executeBatch(session);
+  public int executeBatch(SessionScope sessionScope) throws SQLException {
+    sessionScope.setInBatch(false);
+    return sqlExecutor.executeBatch(sessionScope);
   }
 
   /**
    * Execute a batch for a session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @return - a List of BatchResult objects (may be null if no batch
    *  has been initiated).  There will be one BatchResult object in the
    *  list for each sub-batch executed
@@ -818,30 +738,30 @@
    *   does not support batch statements
    * @throws BatchException if the driver throws BatchUpdateException
    */
-  public List executeBatchDetailed(SessionScope session) throws SQLException, BatchException {
-    session.setInBatch(false);
-    return sqlExecutor.executeBatchDetailed(session);
+  public List executeBatchDetailed(SessionScope sessionScope) throws SQLException, BatchException {
+    sessionScope.setInBatch(false);
+    return sqlExecutor.executeBatchDetailed(sessionScope);
   }
   
   /**
    * Use a user-provided transaction for a session
    *
-   * @param session        - the session scope
+   * @param sessionScope        - the session scope
    * @param userConnection - the user supplied connection
    */
-  public void setUserProvidedTransaction(SessionScope session, Connection userConnection) {
-    if (session.getTransactionState() == TransactionState.STATE_USER_PROVIDED) {
-      session.recallTransactionState();
+  public void setUserProvidedTransaction(SessionScope sessionScope, Connection userConnection) {
+    if (sessionScope.getTransactionState() == TransactionState.STATE_USER_PROVIDED) {
+      sessionScope.recallTransactionState();
     }
     if (userConnection != null) {
       Connection conn = userConnection;
-      session.saveTransactionState();
-      session.setTransaction(new UserProvidedTransaction(conn));
-      session.setTransactionState(TransactionState.STATE_USER_PROVIDED);
+      sessionScope.saveTransactionState();
+      sessionScope.setTransaction(new UserProvidedTransaction(conn));
+      sessionScope.setTransactionState(TransactionState.STATE_USER_PROVIDED);
     } else {
-      session.setTransaction(null);
-      session.closePreparedStatements();
-      session.reset(); // used to be pushSession, which is probably incorrect.
+      sessionScope.setTransaction(null);
+      sessionScope.closePreparedStatements();
+      sessionScope.cleanup();
     }
   }
   /**
@@ -869,32 +789,32 @@
   /**
    * Get a transaction for the session
    *
-   * @param session - the session
+   * @param sessionScope - the session
    * @return - the transaction
    */
-  public Transaction getTransaction(SessionScope session) {
-    return session.getTransaction();
+  public Transaction getTransaction(SessionScope sessionScope) {
+    return sessionScope.getTransaction();
   }
 
   // -- Protected Methods
 
-  protected void autoEndTransaction(SessionScope session, boolean autoStart) throws SQLException {
+  protected void autoEndTransaction(SessionScope sessionScope, boolean autoStart) throws SQLException {
     if (autoStart) {
-      session.getSqlMapTxMgr().endTransaction();
+      sessionScope.getSqlMapTxMgr().endTransaction();
     }
   }
 
-  protected void autoCommitTransaction(SessionScope session, boolean autoStart) throws SQLException {
+  protected void autoCommitTransaction(SessionScope sessionScope, boolean autoStart) throws SQLException {
     if (autoStart) {
-      session.getSqlMapTxMgr().commitTransaction();
+      sessionScope.getSqlMapTxMgr().commitTransaction();
     }
   }
 
-  protected Transaction autoStartTransaction(SessionScope session, boolean autoStart, Transaction trans) throws SQLException {
+  protected Transaction autoStartTransaction(SessionScope sessionScope, boolean autoStart, Transaction trans) throws SQLException {
     Transaction transaction = trans;
     if (autoStart) {
-      session.getSqlMapTxMgr().startTransaction();
-      transaction = getTransaction(session);
+      sessionScope.getSqlMapTxMgr().startTransaction();
+      transaction = getTransaction(sessionScope);
     }
     return transaction;
   }
@@ -915,27 +835,23 @@
     return key.hashCode();
   }
 
-  protected RequestScope popRequest(SessionScope session, MappedStatement mappedStatement) {
-    RequestScope request = (RequestScope) requestPool.pop();
-    session.incrementRequestStackDepth();
-    request.setSession(session);
-    mappedStatement.initRequest(request);
-    return request;
+  protected StatementScope beginStatementScope(SessionScope sessionScope, MappedStatement mappedStatement) {
+    StatementScope statementScope = new StatementScope(sessionScope);
+    sessionScope.incrementRequestStackDepth();
+    mappedStatement.initRequest(statementScope);
+    return statementScope;
   }
 
-  protected void pushRequest(RequestScope request) {
-    request.getSession().decrementRequestStackDepth();
-    request.reset();
-    requestPool.push(request);
+  protected void endStatementScope(StatementScope statementScope) {
+    statementScope.getSession().decrementRequestStackDepth();
   }
 
-  protected SessionScope popSession() {
-    return (SessionScope) sessionPool.pop();
+  protected SessionScope beginSessionScope() {
+    return new SessionScope();
   }
 
-  protected void pushSession(SessionScope session) {
-    session.reset();
-    sessionPool.push(session);
+  protected void endSessionScope(SessionScope sessionScope) {
+    sessionScope.cleanup();
   }
 
   public ResultObjectFactory getResultObjectFactory() {