I still don't know the Roller code, but...
I think the Spring declarative transaction approach could be a good fit
for Roller. The transactions would be implemented in proxied versions
of the manager classes and would be defined in an XML file and not
require any explicit code.
The same declarations should be able to be used for Hibernate, JDO, OJB,
or EJB3/JPA.
Wiring up the Managers with Spring would facilitate plugging in
alternate implementations of the Managers as well and make it easier to
co-ordinate the different back-end projects in process or under
consideration.
David M Johnson wrote:
- While refactoring is going on it will be more difficult for others to
work on EJB3 or JDO stuff. For example, now that I'm getting my free
time back (book is done next week) I'm personally interested in pursuing
the EJB3 alternative.
I assume you mean the JPA part of EJB3 that can work outside of a J2EE
server, right?
But there are also technical issues:
- We don't want to do things that will reduce our ability to move to JDO
or EJB3 in the future (e.g. Matt mentioned Spring's declarative
transactions, would that cause problems or redundancy if we moved to
EJB3 at some point?)
It looks like Spring 2.0 has support for JPA, so it should be possible
to use Spring transactions for Hibernate, JDO, and EJB3/JPA.
There's some discussion of Spring + EJB3/JPA here:
http://www.theserverside.com/news/thread.tss?thread_id=38538
-- Sean