Last year BTM activity slowed down and nearly stopped definitely. This time is no more; as I just quickly explained in my classic ‘new version released’ email I publish on the mailing list the project is healthy once again.
The most interesting new features of this release (apart from a rewrite of the weakest part of the engine) are, in no particular order:
Support for per connection affinity
A connection opened from the JDBC pool will now ‘stick’ to the thread which opened it, ie: calling DataSource.getConnection() many times in a row will now always return the exact same connection.
This feature has been requested long ago because some databases have too brittle XA support and isolation between two connections to the same database participating in the same transaction wasn’t always working as expected.
All that code has been written by Brett Wooldridge who joined the project as a committer a few months ago, thanks mate!
Compatibility with JDBC 4 API
Another feature implemented by Brett. Connection wrappers returned by the PoolingDataSource now implement the full JDBC4 API when used with JDK1.6. It is even possible to use the standardized connection testing by setting enableJdbc4ConnectionTest on PoolingDataSource instead of the less performant testQuery.
JTA 1.1 support
There is little to say about this one except that BTM is now in line with the latest standard. The changes in this release of the specification are rather minimal and close to useless but if you want to use the TransactionSynchronizationRegistry it’s now there. This will also help with Maven 2 dependencies as some projects using JTA tend to depend on this revision of the JTA jar.
Now that version 2.0.0 nearly is out there (still in beta but shouldn’t take long to get final) the path is free to cleanup BTM and make it more in-sync with today’s technologies. I still can’t wait to get feedback on this beta!
On the roadmap the big points are the adoption of Maven 2 as the build tool and the drop of JDK 1.4 support. Any thoughts, questions, comments, complains about this? Suggestions?
What do people dislike in BTM and what would they love to see happening? Comments are welcome!