2.63.1
  - Fix Java 8 overload issues introduced in 2.63

2.63 *** DO NOT USE ***
  - Include lambda-friendly callback methods on Handle and DBI, #156

2.62
  - Also include asm in shade, fixes build.  Sorry about the broken releases...

2.61 *** DO NOT USE ***
  - Fix shading broken in 2.60, fixes #152

2.60 *** DO NOT USE ***
  - Fix Javadoc generation for JDK6 and JDK8
  - Add support for /* */ style comments in statements
  - Add @BindMap annotation which allows parameters passed in a Map<String, Object>
  - Add support for running Script objects as individual statements rather than batch
  - Add support for default bind name based on argument position number (thanks @arteam)
  - Fix SqlObject connection leak through result iterator (thanks @pierre)
  - Switch to using cglib instead of cglib-nodep so we can pull ASM 5.0.2 which is Java 8 compatible
  - Classmate to 1.1.0

2.59
  - Fixes #137, broken ClasspathStatementLocator cache (thanks @HiJon89).
  - Recognize MySQL REPLACE statements

2.58
  - Identical to 2.57 except that the jar is correctly shaded.


2.57  *** DO NOT USE *** - Packaging for 2.57 was accidentially broken, use 2.58 instead.
                           Thanks to @HiJon89 for spotting the problem!
  - use Types.NULL for null objects (thanks @christophercurrie)
  - improve behavior on transactional autocommit (thanks @hawkan)
  - fix connection leak in on-demand sqlobject (thanks @pmaury)
  - code cleanups


2.54
  - fix cleanup bug when e.g. cleanupHandle was called multiple times
    on the same query.
  - Generic object binding uses specific type if value is non-null.


2.53
  - Tests now run in parallel 
  - Added Template supergroup loading to StringTemplate3StatementLocator
  - add a global cache for templates loaded from an annotation.
  - fix a handler cache bug.

2.52
  - not released

2.51
  - fix PMD, Findbugs and javadoc complaints
  - clean license headers in all source files
  - use basepom.org standard-oss base pom to build,
      build with all checkers enabled
  - build with antlr 3.4
  - use classmate 0.9.0 (from 0.8.0)
  - make all dependencies that are not required optional (not provided)

2.50
  - add travis setup for autobuilds
  - Remove log4j dependency for slf4j logger
  - Ensure that compilation using JDK7 or better uses a JDK6 rt.jar
  - Fix the @BindBean / Foreman.waffle code to use correct ArgumentFactories
    and not just the ObjectArgumentFactory
  - fix spurious test failures when using newer versions of the surefire plugin


2.45
  - Support for setting Enum values from strings in BeanMapper
2.44
  - Add java.io.Closeable to Handle and ResultIterator
2.35
  - Use CGLIB for sql objects instead of dyanmic proxies
  - Support for classes as well as interfaces in the sql object api
  - Add @Transaction for non @Sql* methods in sql objects
  - @CreateSqlObject annotation sql objects to replace Transmogrifier

2.31
  - Add access to ResultSet on FoldController

2.12
  - Registered Mappers on DBi and Handle, and the Query#mapTo addition
  - Sql Object API

2.11
  - Botched release attempt with Maven 3

2.10.2
  - Bugfix: Allow escaping of arbitrary characters in the SQL source, especially allow
            escaping of ':' (which is needed for postgres type casts)

2.10.0
  - minor code cleanups to reduce number of warnings
  - Expose NamedArgumentFinder to allow custom lookup of Arguments. JDBI already provides
    two implementations of the Interface, one for Maps and one for BeanProperties.
  - Add ability to set query timeout (in seconds) on SQLStatement

2.9.3
  - Add <url /> element to pom so can get into central :-)

2.9.2
  - Add ` as a legal SQL character in colon prefix grammar
  - non-existent release, fighting maven

2.9.1
  - First 2.9 series release

2.9.0
  - Make the DefaultMapper public.
  - Aborted, trying to make gpg signing work correctly

2.8.0
  - Add methods to SQLStatement and PreparedBatch that allow adding a set of defines
    to the context in one go.
  - Add ~ { and } as legal characters in the colon prefix grammar

2.7.0
  - A TimingCollector was added which can be registered on the DBI or handle which then
    gets called with nanosecond resolution elapsed time every time a statement is run
    against the data base.
  - re-added some Exception constructors that were accidentially removed in 2.3.0 making
    2.4.0-2.6.x non-backwards compatible.
  - Bind java.util.Date as a timestamp because it contains time and date.
  - BasicHandle constructor is now package private (which it always should have been)
  - add Clirr Report to the Maven Site
  - convert all calls to System.currentTimeMillis() to System.nanoTime(), which is more
    accurate and much more lightweight. As we only calculate time differences, it is
    good enough.
  - fix more compiler warnings
  - add null checks for all object types on SQLStatement
  - move object null checks, that don't require boxing/unboxing
    into the Argument classes. Keep the checks for object/primitive
    types in SQL to avoid boxing/unboxing overhead.

2.6.0
   Fix a number of compiler warnings
   Add new binding methods for SQLStatement
    - Integer, Boolean, Byte, Long, Short  Object
    - double, float, short primitive
   All bind methods taking an object should check
   for null values and bind a NullArgument accordingly.

2.5.0
    Add new binding methods for SQLStatement
      - char types
      - boolean as int (for DBs missing a boolean type)
    Re-add unit test removed in 2.4.9 with unicode escapes

2.4.9
    Remove Unit tests that fails depending on Platform Encoding

2.4.8
    Switch to ANTLR 3 for grammars so that shading works again

2.4.5
    Move source code to github

2.4.4
    Fix several dependency and shading issues which came up from the
    ant to conversion.

2.4.3
    Add better messages on statement exceptions

2.4.2
    Switch to maven2 for builds

    Add the statement context to statement related exceptions, including a new
    DBIExcpetion abstact subclass, StatementException, which exposes this.

2.3.0
    Fix OracleReturning compile time dependency using Reflection.
    Deprecated OracleReturning.
    Added CallableStatement support :
      - new method handle.prepareCall
      - new Call class and CallableStatementMapper interface

    Fixes to colon prefix grammar to support empty string literals and
    escaped quotes.

    Added access to more of the actual context for a statement to StatementContext

2.2.2
    Change OracleReturning to use oracle.jdbc.oraclePreparedStatement for
    compatibility with ojdbc6.jar compatibility

2.2.1
    Fix a result set leak in the case of a Mapper raising an exception rather
    than returning cleanly

2.2.0
    Add DBI#inTransaction

2.1.1
    Add timing info to logging calls

2.1.0
    Add Query#fold

    Add additional logging around handles and transactions

2.0.2
    Clean up a NullPointerException which was masking an
    UnableToCreateStatementException

2.0.1
    Add '!' to the characters for LITERAL in the colon prefix grammar

2.0.0
    Add Query#list(int) in order to allow for a maximum resukt size from
    eager query execution.

    Add sql logging facility

1.4.6
    Fix an NPE when dealing with metadata in Args.

2.0pre17

    Change statement customizer to have before and after callbacks

    Change OracleReturning to use the after callback to extract results

2.0pre16
    Clean up the build so the stringtemplate stuff is useful

    SQLStatement#bind(*, Character) which converts to a string

    Provide a non-caching default statement builder

    Allow setting the statement builder on a DBI explicitely

    Allow re-use of a prepared batch by clearing the parts prior to execution

    Change query iterated results to clean resources in the same manner as list,
    just later

2.0pre15
    Move StringTemplate stuff back into unstable

    Support for checkpointed transactions

2.0pre14
    Add convenience classes for one value result sets

    StringTemplate 3.0 based statement locator and a classpath based loader

    Improve grammar for named param parsing (| in LITERAL)

2.0pre13
    Spring (2.0) support classes

    Add ability to define statement attributes at the DBI and Handle levels

    Have prepared batch use the statement locator

    Bean resultset mapper invokes the right ResultSet.getXXX() for each
    property type (getObject() on Oracle returns internal Oracle types)

    Allow positional binding for PreparedBatch

    Renamed PreparedBatchPart.another() to next()

    Change SQLStatement#first to return null on an empty result instead of an NPE

    Allow setting attributes on statement contexts for batches and prepared batches

    SQLStatement.bindNull(...)

2.0pre12
    [bugfix] Pass statement context into result mapped queries

2.0pre11
    Create the StatementContext to allow for tunneling state into the various
    client defined tweakables

2.0pre10
    allow numbers in named params

2.0pre9
    Fix up IDBI to have the DBI functional methods and not the config methods

2.0pre8
    Add double quote handling to named param magic

2.0pre7
    Added Oracle DML Returning features

2.0pre6
    Pluggable statement builders

    More literal characters in the named statement parser

2.0pre5
    Improve grammar for named param parsing (_ @ and _ in LITERAL)

2.0pre4
    Switch to an ANTLR based grammar for named param parsing

2.0pre3
    JDBC4 Style "Ease of Development" and API Docs

2.0pre2
    Flesh out convenience APIS

2.0pre1
    Complete Rewrite

1.4.5
    Fix bug in caching added in 1.4.4

    Optimize statement literal or named statement detection

1.4.4
    Allow for create/drop/alter statements

    Cache whether or not a driver supports asking for prepared statement parameter types

1.4.3
    Handle drivers (such as Oracle) which throw an exception when trying to retrieve
    prepared statement parameter type information.

1.4.2
    Be explicit about target jdk version (1.4) for this branch

1.4.1
    Fixed bug where null is being set via setObject instead of setNull
    Thank you, Simone Gianni!

1.4.0
    Expose the new functionality on interfaces as well as concrete classes

1.3.3
    Expose the handle decorator functionality on the IDBI interface

    Add a script locator mechanism analogous to the statement locator

1.3.2
    Save SQLException to provide more information to the DBIException on
    statement execution

1.3.1
    Issue with a matcher not being reset which only showed up under jdk 1.5. Thank you Patrick!

1.3.0
    Wrap exceptions thrown from handle in Spring DataAccessExceptions for the
    Spring adaptor. Thank you Thomas Risberg.

    Support for "global" named parameters at the handle and DBI levels

1.2.5
    Change Handle#script to batch the statements in the script

1.2.4
    Bug fix in named parameter handling with quotes (would ignore some named params incorrectly)

1.2.3
    Allow configuring transaction handlers in properties

    Allow configuring of externalized sql locating (ie, non-classpath)

1.2.2
    Add callback based transaction handling in order to cleanly support the various
    transactional contexts (CMT, BMT, Spring, Local) etc.

1.2.1
    Via the Spring DBIBean, IDBI#open(HandleCallback) now uses the transactionally bound handle
    if there is one.

1.2.0
    DBIException now extends RuntimeException. The 7 character change major release =)

    Added DBIUtils.closeHandleIfNecessary(Handle, IDBI) to allow for transparently managing
    transactions and connections in Spring whteher tx's are enabled or not.

1.1.2
    Handle#query(String, RowCallback): void no longer starts a transaction
    automagically

1.1.1
    Support full-line comments in external sql and sql scripts. Full line comments
    must begin with # or // or -- as the first character(s) on the line.

1.1.0
    Added handle#first(..): Map convenience functions to query for individual rows

    Removed DBITransactionFailedException and used plain old DBIException
    in its place

    Added unstable package for holding elements subject to API changes
    during a major release cycle.

    Handle decorator functionality added to unstable feature set

    JavaBean mapped named parameter support

    Renamed Handle#preparedBatch to Handle#prepareBatch

    Queries return java.util.List instead of java.util.Collection

    Much more sophisticated auto-configuration

    Broke backwards compatibility on handle.query(String, Object) method behavior
        (this is reason why 1.1.0 version increment)
        (read the javadocs if you use this method)

    Removed method Handle#query(String, Object, Object)
        Could lea to confusion with changed behavior mentioned above

1.0.10
    Batch and PreparedBatch Support

    Removed an unused exception

    Fixed bug in named parameter extractor (would miss named params not preceeded by whitespace)

1.0.9
    Better auto-detection of statement type (named, raw sql, etc)

1.0.8
    Spring integration tools

1.0.7
    Provide an interface for the DBI class in order to play nicer with proxies

1.0.6
    Prepared statement re-use was failing on Oracle, fixed.

1.0.5
    Fleshed out the execute(..) methods to take full array of arguments, like
    query.

    Added update(..): int which return number of rows affected

    Lots of internal refactoring

1.0.4
    Was swallowing an exception in one place for the (brief) 1.0.3 release.
    Definately upgrade if using 1.0.3

1.0.3
    Fixed a bug where quoted text could be interpreted as named tokens, bad me.

    Added HandleCallback methods to DBI to manage handle db resources etc for
    clients.

    Removed test dependency on Jakarta commons-io, which had been used, previously,
    for deleting the test database. Tests now depend only on derby and junit, still
    with no runtime dependencies (other than the JDBC driver for your database).

1.0.2
    Added facility for loading connection info from properties file
    for convenience. Totally optional, thankfully.

1.0.1
    Added overloaded argument signatures to callback-based queries

1.0
    Initial Release
