|
From: Rod J. <rod...@in...> - 2003-03-20 04:19:22
|
Hi Guys, In case you're wondering why I've been silent lately I've been offline while my 18-month old son has been in hospital for heart surgery. He's now recovering well after a bit of a scare last weekend. In the meantime I've been doing some work on Spring. I've continued to make some enhancements to the AbstractBeanFactory, which I'll commit early next week. AOP I've also reimplemented the AOP packages, and am very pleased with the results. (Developed test first, naturally, with 94% test coverage.) I'll also check this in in a few days. It builds on the new FactoryBean support, and I think is mature enough to make 0.9, if not 0.8 (depending on when we do the releases). The core AOP framework package is surprisingly simple: there's probably less code in it than the JDBC stuff. So please don't bother looking at the old AOP package...the new packages use the same concepts, but I think are a significant improvement. TRANSACTION MANAGEMENT Following a suggestion from Yann that reminded me of my original plans, I'm looking at trying to do for JTA what Spring does for JDBC: simplifying API using callbacks, and a meaningful hierarchy of runtime exceptions. One of the reasons JTA is a pain to use is that not only are all exceptions checked, there's no common superclass so they all need to be caught individually. I'm planning a new com.interface21.transaction package analogous to the com.interface21.dao package defining the exception hierarchy. A com.interface21.jta package (which I originally had but dropped for the first Spring release) will contain a JTA counterpart of the JdbcTemplate, using a similar calllback approach. Not sure whether this will make 1.0 or any interim release. An AOP transaction interceptor will offer CMT via AOP, building on this common tx infrastructure. I'll be checking in an experimental version of this next week. I think AOP has the potential to do much more powerful CMT than EJB. For example, it's possible to specify which checked exceptions should cause automatic rollback. This is impossible with EJB. Also, different transaction interceptors could be used for each target platform: e.g. Tomcat/Tyrex, Orion, WebLogic or JBoss. This would ensure that application code was truly portable. VOLUNTEERS WANTED I've designed a generic TransactionInterceptor that uses a PlatformTransactionManager interface that plugs into a potentially server-specific tx mgt API. (There are things to do with isolation levels etc. for which it's good to be able to use proprietary extensions.) I'm planning to do a JTA-based portable implementation, but I'd love volunteers to write PlatformTransactionManager implementations that could be used with particular servers, such as - JBoss - Tomcat/Tyrex - WebLogic - Orion I think it will also be important to have sample apps testing and demonstrating this functionality. I think it's going to be tremendously powerful, yet easy to use. Regards, Rod |