* BTM-4 Implement incremental recovery
* BTM-7 Resource password is not decrypted when using the API
* BTM-8 Durable subscribers cannot participate in XA
* BTM-9 BitronixTransactionManager JNDI reference throws NPE on toString()
* BTM-10 Race condition in connection pools when lazily initialized
* BTM-11 Implement an embedded JNDI provider that allows to retrieve the TM and configured resources in a more standard way
* BTM-12 add maven support
* BTM-13 Implement ordering of XAResource during 2PC execution
* BTM-14 Need the ability to have BTM invoke specific methods on JDBC connection upon return to the pool
* BTM-17 Set tx status to marked_rollback on timeout
* BTM-18 Invoke XAResource.setTransactionTimeout() when a resource is enlisted
* BTM-19 No effect by setting auto-commit to false on LrcConnectionHandle
* BTM-20 XAResourceManager incorrectly checking resource joinability
* BTM-21 Differing journal-file lengths cause BTM to fail to start even if skipCorrectedLogs is true
* BTM-22 Resource rollback not handled properly
* Dropped all deprecated classes and methods.
* Shutdown hook is not registered anymore when the TM starts up. It is now mandatory to shut it down manually.
* Fixed incorrect transaction manager startup while using pools when BTM is not started.
* Moved CryptoEngine to bitronix.tm.utils, kept bitronix.tm.internal.CryptoEngine but deprecated it.
* Resource Loader cannot bind to JNDI anymore (no more needed, see: BTM-11), this obsoletes bitronix.tm.resource.bind property.
* Transaction timeout logic has been rationalized, this obsoletes bitronix.tm.timer.transactionRetryInterval property.
* Lowered statement cache overhead when it is disabled.
* Fixed bug in the double LRC enlistment check that prevented safe cases from working.
* Upgraded JTA and JMS jars to the latest 1.4-compiled version.
* Added new configuration property 'journal' that allows to switch between the classic 'disk' journal and a new non-logging 'null' journal.
* Upgraded SLF4J to version 1.5.2.
* Fixed lots of misc bugs.
Important Incremental recovery required a change in the Disk Journal's log format. Compatibility with older format (1.2 and below) has been maintained but journals created by BTM 1.3 cannot be read by older versions.
Documentation The documentation at http://docs.codehaus.org/display/BTM/Home hasn't been updated to reflect all the changes of this new release. It will gradually be upgraded but most of its content is still valid.
It is strongly recommended for anyone testing any BTM 1.3 pre-release to upgrade to this version to make sure you benefit from all the latest bug fixes.
As usual, please report any bug / question / remark you might have here.
the changelog mentions that you suppressed the shutdown hook. What are the implications, specially with web container integration, where (as far as I know) it's more difficult to control object lifecycle (compared to something like Spring)?
The shutdown hook has been removed because it encourages bad design, can cause memory leaks and race conditions during shutdown.
BTM should be integrated directly into your webapp server. For Tomcat, that means writing a LifecycleListener while with Jetty it means writing a LifeCycle. This is not complex at all and allows the container to properly manage the transaction manager's lifecycle.
I'm going to update the documentation as soon as I can describing how to do that in details but here is very briefly how that should be done:
I wrote the two listeners (for Jetty 6.1 and Tomcat 6.0), pretty simple and works fine. Perhaps these should be included in the BTM distrib, as they are now compulsory for clean app server integration (these kind of essential and not included classes remind me of SwingWorker or Hibernate.getCurrentSession, who ended up being included in their respective core).
just a note for Tomcat integration. In the context.xml, this is not valid anymore: