            ------
            Release Notes
            ------
            Naoki Takezoe
            ------
            2010-05-02

Release Notes

* {mirage 1.1.4 - xx xxx 2011}

 * Added {{{apidocs/jp/sf/amateras/mirage/naming/RailsLikeNameConverter.html}RailsLikeNameConverter}} as an optional NameConverter.

 * Added {{{apidocs/jp/sf/amateras/mirage/beans/FieldPropertyExtractor.html}FieldPropertyExtractor}} as an optional implementation of PropertyExtractor.

 * BugFix: Avoid depending on JDBC 4.0 (Java6) API in DefaultValueType

 * Chopping semicolon from the end of the SQL file.

 * Improve: Avoid using type Exception/RuntimeException to make interfaces intension revealing 

 * Added SqlManagerImpl#setValueTypes to make it easier to configure valueTypes using Spring framework

 * BugFix: PropertyExtractor extracts static or final field

 * Improvement: DefaultResultEntityCreator just reqires no-argument constructor.  It really doesn't matter if the constructor is public.

 []

* {mirage-scala 0.0.2 - 20 Sep 2011}

 * Improves interface of SqlManager.

 * Added methods for batch updating to SqlManager.

 * Moved to sbt 0.10 from 0.7.

 []

* {mirage 1.1.3 / mirage-scala 0.0.1 - 6 Aug 2011}

 * Added {{{apidocs/jp/sf/amateras/mirage/updater/SchemaUpdater.html}SchemaUpdater}} and {{{apidocs/jp/sf/amateras/mirage/updater/SchemaUpdateListener.html}SchemaUpdateListener}} to update database schema automatically.

 * Added {{{apidocs/jp/sf/amateras/mirage/session/Session.html#setRollbackOnly()}Session#setRollbackOnly()}} and {{{apidocs/jp/sf/amateras/mirage/session/Session.html#isRollbackOnly()}Session#isRollbackOnly()}} to rollback transaction without exception.

 * SQL parsing result caching for performance improvement. You can control cache mode via {{{apidocs/jp/sf/amateras/mirage/SqlManagerImpl.html#setCacheMode(boolean)}SqlManagerImpl#setCacheMode()}}.

 * Oracle hint support in 2-way SQL

 * Added {{{apidocs/jp/sf/amateras/mirage/ResultEntityCreator.html}ResultEntityCreator}} interface to extends SqlManager.

 * Added {{{apidocs/jp/sf/amateras/mirage/bean/PropertyExtractor.html}PropertyExtractor}} interface to extends BeanDesc.

 * Scala wrapper named {{{mirage-scala.html}mirage-scala}} is available.

 []

* {mirage 1.1.2 - 1 May 2011}

 * Added {{{apidocs/jp/sf/amateras/mirage/session/DBCPSessionImpl.html}DBCPSessionImpl}} to provide connection pooling as standalone usage.

 * Added {{{apidocs/jp/sf/amateras/mirage/integration/guice/TransactionInterceptor.html}TransactionInterceptor}} and {{{apidocs/jp/sf/amateras/mirage/integration/guice/Transactional.html}@Transactional}}
   for {{{integration.html#Google_Guice}Guice Intagration}}.

 * {{{apidocs/jp/sf/amateras/mirage/test/MockSqlManager.html}MockSqlManager}} came to support stored procedure / function.

 []

* {mirage 1.1.1 - 19 Jan 2011}

 * Automatic dialect configuration by the connection URL in JDBCSessionImpl.

 * jdbc.driver in jdbc.properties became omitable for JDBC 4.0 driver.

 []

* {mirage 1.1.0 - 15 Jan 2011}

 * Primary key generation support

  * {{{apidocs/jp/sf/amateras/mirage/annotation/PrimaryKey.html}@PrimaryKey}} annotation has new attributes generationType and generator.
    The generationType attribute supports GenerationType.APPLICATION, GenerationType.IDENTIY and GenerationType.SEQAUENCE.

  * The persistent attribute of @PrimaryKey annotation has been removed.

 * Improvement of unit testing support

  * Verification methods of {{{apidocs/jp/sf/amateras/mirage/test/MirageTestContext.html}MirageTestContext}} have been enhanced.

 * New ConnectionProvider and Dialect

  * Added {{{apidocs/jp/sf/amateras/mirage/provider/JNDIDataSourceConnectionProvider.html}JNDIDataSourceConnectionProvider}} and
    {{{apidocs/jp/sf/amateras/mirage/provider/JNDIXADataSourceConnectionProvider.html}JNDIXADataSourceConnectionProvider}} to
    obtain datasource from JNDI.

  * Added {{{apidocs/jp/sf/amateras/mirage/dialect/MySQLDialect.html}MySQLDialect}} to MySQL support.

 []

* {mirage 1.0.6 - 2 Jan 2011}

 * Unit Testing support

   * Added {{{apidocs/jp/sf/amateras/mirage/test/MockSqlManager.html}MockSqlManager}} which is used in unit testing instead of SqlManager.
     See details about Unit Testing support at the {{{unittest.html}UnitTest}} section.

 * Ant Task

   * Added {{{apidocs/jp/sf/amateras/mirage/tool/EntityGenTask.html}EntityGenTask}} for entity generation.

 []

* {mirage 1.0.5 - 5 Oct 2010}

 * Added new methods to SqlManager for batch insert/update/delete entities:

   * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#insertBatch(java.util.List)}SqlManager#insertBatch()}}

   * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#updateBatch(java.util.List)}SqlManager#updateBatch()}}

   * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#deleteBatch(java.util.List)}SqlManager#deleteBatch()}}

 * BugFix: NullPointerException which is caused in conversion from NULL column value to java.util.Date.

 * Possible to specify @In, @Out, @InOut, @ResultSet for setter / getter method.

 * Added new annotations @Table, @Column. These annotation are used to specify table and column name.

 * Entity Generation Tool (Experimental). See the {{{apidocs/jp/sf/amateras/mirage/tool/EntityGen.html}EntityGen Javadoc}} to know how to use it.

 []

* {mirage 1.0.4 - 1 Sep 2010}

 * JavaSE 5 support (Mirage 1.0.3 and before work with only JavaSE6)

 * BugFix: Map which contains null properties causes NullPointerException in  SqlManager#executeUpdate()

 * BugFix: When the column value is NULL then Mirage sets the default value of primitive types to entity wrapper type properties.

 * Added new methods to SqlManager for direct sql execution:

    * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#getResultListBySql(java.lang.Class, java.lang.String, java.lang.Object...)}SqlManager#getResultListBySql()}}

    * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#getSingleResult(java.lang.Class, java.lang.String, java.lang.Object)}SqlManager#getSingleResultBySql()}}

    * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#iterateBySql(java.lang.Class, jp.sf.amateras.mirage.IterationCallback, java.lang.String, java.lang.Object...)}SqlManager#iterateBySql()}}

    * {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#executeUpdateBySql(java.lang.String, java.lang.Object...)}SqlManager#executeUpdateBySql()}}

 []

* {mirage 1.0.3 - 15 Jun 2010}

  * Iteration search per a record using cursor.
    See {{{apidocs/jp/sf/amateras/mirage/IterationCallback.html}IterationCallback}} and
    {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#iterate(java.lang.Class, jp.sf.amateras.mirage.IterationCallback, java.lang.String, java.lang.Object)}SqlManager#iterate()}}.

  * Stored procedure / function support.

  * BugFix about SqlManager#insertEntity().

  []

* {mirage 1.0.2 - 8 May 2010}

  * Dependency to Spring Framework and Guice became optional.

  * Dependency to the patched OGNL changed to OGML 2.7.3.

  * BugFix about BLOB support.

  []

* {mirage 1.0.1 - 2 May 2010}

  * Use java.util.logging instead of slf4j / logback to remove them from dependency.

  * Simple example and documentation for Google Guice integration.

  * It's possible to specify a transient property by transient modifier instead of {{{apidocs/jp/sf/amateras/mirage/annotation/Transient.html}@Transient}} annotation.

  * Added new method {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#findEntity(java.lang.Class, java.lang.Object...)}SqlManager#findEntity(Class clazz, Object... id)}}

  * Added new method {{{apidocs/jp/sf/amateras/mirage/SqlManager.html#getCount(java.lang.String, java.lang.Object)}SqlManager#getCount(String sqlPath[, Object param])}}

  * {{{apidocs/jp/sf/amateras/mirage/type/ValueType.html}ValueType}} interface to add custom value type support

  * BLOB support

  []

* {mirage 1.0.0 - 20 Apr 2010}

  * Initial Release.

  []

