For many years we've discussed the benefits of object-oriented programming for developing transactional applications, with Transactional Objects for Java (TXOJ) as the implementation of those ideas. As we've discussed before, this ties in with other advanced techniques such as nested transactions.
However, in order for developers to use TXOJ you have to use inheritance (remember: object-oriented principles) and modify your classes, whether C++ or Java. These days POJOs (such an overloaded term as well) are the preferred way to develop applications, acquiring enterprise capabilities through the likes of annotations and AOP. So a few months back we started to look at other approaches to TXOJ with some of the researchers at Newcastle University (the historical home of the Arjuna Project). We also looked at Software Transactional Memory and have managed to tie the two requirements together. It's too early to report on everything we've been doing (it's far from complete just yet anyway), but I hope to give some hints in some future postings.