Build Date: 2006/01/21 21:08
Build Number: 597

------------------------------
 2.1.7 - Jan 21, 2006
------------------------------

 o Fixed IBATIS-218 'i' character in property names, with Turkish locale
 o Fixed IBATIS-219 NoClassDefFoundError: oracle/toplink/sessions/UnitOfWork
 o Fixed IBATIS-228 Exception is thrown by TransactionManager when multiple commits are issued against a started transaction.
 o Fixed IBATIS-229 Method getWriteablePropertyNames in com.ibatis.common.beans.ComplexBeanProbe gets the readable property names
 o Fixed IBATIS-220 Null Pointer in SqlExecutor.handleResults where ResultSet is null.
 o Fixed IBATIS-213 SELECT statement returns unexpected result when 'groupBy' and 'nullValue' are specified in resultMaps.
 o Fixed IBATIS-221 Can't store a List in a Map 
 o Fixed IBATIS-223 Thread deadlock due to CacheModel.flush() 

------------------------------
 2.1.6 - Nov 5, 2005
------------------------------

 o Fixed IBATIS-198 Call "getDataSource()" of SqlMapClientImpl will cause application to hang
 o Fixed IBATIS-179 Binaries on webpage use old Hibernate
 o Fixed IBATIS-174 CacheModel does not support caching null results
 o Fixed IBATIS-197 Call "getDataSource()" of SqlMapClientImpl will cause application to hang
 o Fixed IBATIS-131 Fix use of list[]-notation in propertyattributes of dynamic tags
 o Fixed IBATIS-173 Incorrect resultset retrieve when calling stored procedure
 o Fixed IBATIS-194 No resultSet found when executing SQL Server stored procedure.
 o Fixed IBATIS-196 can't use dynamic replace data-source-type over IBATIS ver 2.0.9 library
 o Fixed IBATIS-191 operation(insert and update) Oracle's(OCI) CLOB and BLOB fail, CLOB will close tomcat, BLOB will miss any DATA
 o Fixed IBATIS-193 Hidden jar dependicity for iBatis DBL 2.1.5
 o Fixed IBATIS-175 ResultSetLogProxy doesn't log the result properly
 o Fixed IBATIS-195 Sqlmap DTD: include tag not permitted in selectKey element
 o Fixed IBATIS-172 implicit mapping fails on nested column aliases
 o Fixed IBATIS-185 SqlMapClasspathEntityResolver - Offline public ID resolution value ignored 

------------------------------
 2.1.5 - July 17, 2005
------------------------------

 o Fixed IBATIS-136 groupBy not carried forward to extended result maps
 o Fixed IBATIS-139 discriminator being applied to too many result maps (thanks Sven)
 o Fixed IBATIS-152, 149, 116 null result sets now handled properly by JDBC logging classes (thanks Sven)
 o Fixed IBATIS-146 consumes additional result sets before retrieving output params (JTDS fix)
 o Fixed IBATIS-130 parameter maps don't allow for complete TypeHandler implementations
 o Fixed IBATIS-148 parameter maps don't allow for complete TypeHandler implementations
 o Removed dependency on Commons Logging, will autodetect and use Commons Logging, Log4J, JDK 1.4 or no logging
 o Improved entity resolvers to be smarter, checks both system and public IDs, and both ibatis.com and apache.org  

------------------------------
 2.1.0 - May 16, 2005
------------------------------

 o Added <discriminator> and <subMap> tags for class inheritance support
 o Added IBATIS-95 removeFirstPrepend attribute to all tags 
 o Added IBATIS-95 open and close attributes to all dynamic tags to handle complex queries with bracketing 
 o Added IBATIS-35 to allow duplicate type aliases
 o Fixed IBATIS-45 Removed JavaBeanProbe/MapProbe in favor of ComplexBeanProbe 
 o Fixed IBATIS-79 Problem with nested groupBy resultMaps
 o Fixed IBATIS-78 JDBC driver properties does not work when using DBCP
 o Fixed IBATIS-42 bug that prevented dynamic tags from being nested inside an iterate tag
 o Fixed IBATIS-112 bug that will now allow for the $[]$ notation to be used.
 o Fixed IBATIS-45 ProbeExceptions with complex beans
 o Fixed IBATIS-79 Problem with nested groupBy resultMaps
 o Fixed IBATIS-46 xml parsing issue using jdk 1.3
 o Fixed IBATIS-102 duplicate code in the SqlMapConfigParser.java
 o Fixed IBATIS-101 add remapResults attribute to procedure tag in sql-map-2.dtd
 o Changed SQL executor to always call .execute instead of .executeQuery and .executeUpdate
 
------------------------------
 2.0.9B - Feb 20, 2005
------------------------------

 o Rebuilt on Feb 20th to fix incomplete ZIP file
 o Fixed IBATIS-24 Add use="true" to javadoc tasks
 o Fixed IBATIS-25 Included com.ibatis.common not included in JavaDoc
 o Fixed IBATIS-57 Deprecated ScriptRunner
 o Fixed IBATIS-47 Add Table of Contents to SqlMaps developer guide
 o Fixed IBATIS-68 Add PrameterSetter's interface ( getPreparedStatement() )
 o Fixed IBATIS-55 Throws ArrayIndexOutOfBoundsException when call queryForObject
 o Fixed IBATIS-41 Sql fragments dont use namespaces
 o Fixed IBATIS-51 isParameterAvailable for Maps always returns true
 o Fixed IBATIS-66 com.ibatis.common.util.Throttle not decrementing Session counter causes application to hang
 o Fixed IBATIS-61 Inconsistent type handler handling
 o Fixed IBATIS-70 iBatis Caching Should Not Rely on hashCode Alone
 o Fixed IBATIS-72 Placeholders in sqlmap are not resolved in config
 o Fixed IBATIS-74 Problem using a "url" based properties file
 o Fixed IBATIS-34 Exception while serializable NULL value (CacheModel)

------------------------------
 2.0.9 - Dec 31, 2004
------------------------------

 o Added solution for N+1 selects for any number of 1:M and M:N relationships.
 o Added groupBy="..." for Result Maps to deal with repeating groups.
 o Added resultMap="..." to result mapping to deal with sub groups.
 o Added remapResults="true|false" remapping of dynamic result set metadata.
 o Added support for isolation levels specified in .startTransaction()
 o Added support for SQL "includes" to reduce/eliminate repeated SQL
 o Added default CLOB/BLOB support that should work for most databases (thanks to Alexander and Martin)
 o Added TopLink DAO Transaction Manager and Template (thanks to Wayne Gentile!)
 o Custom type handlers can now directly implement the TypeHandler interface
 o Refactored Builder/Parser to be more maintainable (nodelets)
 o Verified that duplicate statement names throw an exception. [982534]
 o SqlExecutor now always exhausts result sets with ps.getMoreResults()
 o Fixed new format inline parameter parsing error [ibatis-23]

------------------------------
 2.0.8 - Nov 26, 2004
------------------------------

 o Probes now always return true for hasReadable/hasWriteable property checks.
 o Fixed OUT/INOUT parameters to proc not retrieved properly (ibatis-12)
 o Verified missing columns throw an exception (ibatis-16)
 o Completely $supplied$ SQL statements are not supported (ibatis-17)
 o Verified parameter type handlers are applied (ibatis-ll)
 o Fixed cache model size of 1 disables caching (ibatis-7)
 o Fixed LRU cache memory leak (ibatis-1)
 o Added commitRequired attribute to transactionManager to force commit even on query (ibatis-10,3)

------------------------------
 2.0.7 - Oct 03, 2004
------------------------------

 o Added new inline parameter map format (#columnName,javaType=string,jdbcType=VARCHAR# etc.)
 o Added direct Set type property support
 o Added "OBJECT" type handler mapping to help deal with  unsupported types
 o Added better exception messages and improved OJB DAO transaction support
 o Fixed complex properties being instantiated, even if ultimate value is null
 o Fixed DAO builder so that parameter properties override file props
 o Fixed CTH so nulls are now sent to custom setParameter
 o Fixed DAO unclosed Connection in JTA transaction 
 o Fixed DAO possible (unlikely) unclosed JDBC connection

------------------------------
 2.0.6 - Sep 18, 2004
------------------------------

 o Changed complex props so select won't be executed if param null
 o Fixed non-caching null cache result bug
 o Fixed removeObject bug from fifo and lifo cache
 o Fixed locale issue with JavaBean property matching
 o Fixed unclosed statement if result set fails in MS SQL Server
 o Fixed comments within dao.xml
 o Fixed undetected duplicate statement names in a single sql map
 o Fixed inconsistent type handler for Map params without paramclass
 o Fixed SQLExceptin when populating complex properties
 o Fixed setters being called for non-OUT parameter objects

------------------------------
 2.0.5 - Aug 11, 2004
------------------------------

 o Added Custom Type Handlers!  (see TypeHandlerCallback)
 o Added OJB DAO support (Thanks to Pedro Salgado)
 o Added passthrough methods for Hibernate DAO template
 o Added JdbcDaoTemplate support to most DAO TX managers
 o Deprecated JtaDaoTemplate, use JdbcDaoTemplate instead
 o Fixed reserved XML character encoding for XML types
 o Fixed Autocommit (true) in JdbcDaoTransaction
 o Fixed Expanded entity references in XML (for &gt; etc.)
 o Fixed base probe indexed property accessor
 o Fixed doubled-up property element for complex DOM props

------------------------------
 2.0.4 - Jul 25, 2004
------------------------------

 o Deprecated getUserConnection() (use getCurrentConnection())
 o Added getCurrentConnection()
 o Added openSession(Connection) for easier user connections
 o Improved user provided connection implementation
 o Fixed logging bug that prevented SQL from being logged
 o Fixed resultSetType prepareStatement overloaded method call  
 o Fixed nullValue replacement when used with dynamic statements

------------------------------
 2.0.3 - Jul 16, 2004
------------------------------

 o Added fetchSize and resultSetType attributes to statement and select
 o Added parameter count to CacheKey equals for paranoid equality
 o Removed redundant bit shift in CacheKey update
 o Refactored cache locking pattern to improve concurrent access to cache models
 o Improved caching to avoid redundant connection reservations
 o New property to stop autocommit from being called in EXTERNAL TX Manager
 o Fixed JDBC types being ignored for hashmap parameter classes
 o Fixed some rare misleading error messages

------------------------------
 2.0.2 - Jun 22, 2004
------------------------------

 o Fixed nested List in Map parameter (e.g. #list[].id#)

------------------------------
 2.0.1 - Jun 21, 2004
------------------------------

 o Added DefaultAutoCommit property to EXTERNAL transaction manager
 o Removed redundant throws from template methods

------------------------------
 2.0.0 Final - Jun 18, 2004
------------------------------

 o Added SqlMapDaoTemplate wrapper methods (wraps SqlMapExecutor methods)
 o Fixed "double.nested" complex properties (no WRITEABLE prop found)
 o Fixed finalizer triggering lazy loader
 o Fixed Paginated List caching
 o Fixed NPE on complex prop without parameter class
 o Fixed default serialize setting on cache model and improved error msg

------------------------------
 2.0.0 RC5 - May 24, 2004
------------------------------

 o Fixed NPE when no DataSource configured (for Spring)
 o Fixed uppercase bean property support
 o Fixed result map getter based typing vs. setter
 o Fixed javaType attribute support for JavaBeans
 o Fixed caching of statements containing $simple$ dynamic sql
 o Fixed List in Map iterate tag problem
 o Fixed nullValue for primitive result classes of nested select statements

------------------------------
 2.0.0 RC4 - May 11, 2004
------------------------------

 o IMPORTANT: Renamed queryForList(String, Object, RowHandler) BACK TO queryWithRowHandler
 o Added serialize option to cache model to improve concurrent R/W cache performance
 o Added DOM type support for results and parameters.
 o Added DaoManager.getDao(class, contextId) to support for multiple DAO impls
 o Added access to SqlMapTransactionManager from SQL Map DAOs
 o Released all DTD constraints for pluggable components (cache, datasource, txmgr, daotx)
 o Fixed threading issue with StandardDaoManager

------------------------------
 2.0.0 RC3 - Apr 19, 2004
------------------------------

 o Updated DBCP support and centralized config
 o Newlines (\r, \n) are now stripped from SQL
 o Properties are passed from DAO builder to SQL Maps builder
 o Improved OSCache key uniqueness

------------------------------
 2.0.0 RC2 - Apr 11, 2004
------------------------------

 o Added SqlMapClient.flushDataCache()
 o Added "context." prefix for JNDI InitialContext properties
 o Added Resources.setDefaultClassLoader()
 o Fixed specified JDBC type problem with DATE etc.
 o Fixed DAO JDBC connection not being returned
 o Fixed queries with no result map error message
 o Fixed cache key parameter order problem
 o Fixed multiple calls to ResultSet when logging (ODBC/MSAccess problem)
 o Fixed unwrapping of proxy exceptions
 o Fixed convert task temp file bug
 o Fixed specific statement elements using cache model

------------------------------
 2.0.0 RC1 - Mar 20, 2004
------------------------------

 o Commit/rollback is now only applied if an update occurs.
 o Improved error messages (please comment if they still suck)
 o Fixed dynamic SQL with multiple params via result mapped statement
 o Fixed statement w/ cache models fail with class Cast Exception
 o Fixed procedure parameterMap instead of resultMap JavaBeanDataExchange.setData()
 o Fixed procedure calls with no params fails with NPE
 o Fixed duplicate parameters (#value#...#value#) causes out of bounds exception

------------------------------
 2.0.0 Beta 5 - Mar 8, 2004
------------------------------

 o Added DAO properties forwarding to transaction managers (e.g. SQL Map config)
 o Added support for both file prop config and prog. properties (file overrides prog.)
 o Fixed SQL Map statement conversion issue (empty SQL)
 o Fixed DAO passthrough methods
 o Fixed DAO commit/close connection
 o Fixed Property name reuse in parameter maps (PropertyAccessPlan)

------------------------------
 2.0.0 Beta 4 - Mar 2, 2004
------------------------------

 o Includes first "sneak peek" of DAO 2.0 Framework 
 o Added DAO 1.x TX Pool classes for real SQL Maps 2.0 support
 o Added SqlMapSession.close()
 o Refactored SqlMapSession and SqlMapClient interfaces
 o Renamed SqlMapClient.getSession() to .openSession()
 o Renamed files to ibatis-sqlmap-2.jar, ibatis-common-2.jar and ibatis-dao-2.jar
 o Moved compatibilitiy JARs and DAO 1.x to lib/optional/compatibility
 o Fixed hasReadable/WriteableProperty check bug
 o Fixed addBatch Bug
 o Fixed Result Map nullValue type conversion

------------------------------
 2.0.0 Beta 3 - Feb 18, 2004
------------------------------

 o Added new namespaces
 o Renamed <procedure> output="true" to mode="IN|OUT|INOUT"
 o Renamed queryWithRowHandler to queryForList(String, Object, RowHandler)
 o Upgraded DAO JAR to version 1.3.1
 o Fixed iterative $substitutions[]$
 o Fixed multiple iterations in a mapped statement
 o Fixed pure output parameters for stored procs
 o Fixed stored proc trimming problem

------------------------------
 2.0.0 Beta 2 - Jan 18, 2004
------------------------------

 o Changed (IMPORTANT) cacheModel attribute readWrite="true" to readOnly="false" (more accurate)
 o Ant task to convert SQL Maps
 o Updated example log4j.properties and included in /debug directory.
 o Implemented session based caching
 o Moved ErrorContext to request scope
 o Implemented reset methods for scopes
 o Skipped records use rs.absolute() if ResultSet type is not TYPE_FORWARD_ONLY
 o Fixed connection proxy logging bug (no output).
 o Fixed insert element without selectKey (NPE)
 o Fixed LRU/FIFO aliases (swapped)
 o Fixed legacy properties left in converted map files

------------------------------
 2.0.0 Beta 1 - Jan 11, 2004
------------------------------

IMPORTANT: 2.0 initially focuses on compatibility, stability and quality.  Very
           few new features have been added, but the new architecture should make
           make possible the addition of many great new features.

 o Complete, from the ground up rewrite.
 o Completely new, but familiar API and XML document structure
 o Compatibility API for 99% 1.x backward compatibility
 o New and improved array[] support
 o New and improved stored proc support (including output params)
 o New support for auto-gen keys
 o New URL resource loading of config files
 o New type aliases for more concise mappings
 o New XML data types for mappings (direct XML to DB)
 o New and improved lazy loading of all complex types
 o Improved overall performance
 o Reduced library dependencies
 o Much more...and more yet to come
