|
From: Rod J. <rod...@in...> - 2003-06-05 10:36:06
|
> - There's basic JDO support now (in com.interface21.orm.jdo), at the same level as the Hibernate support: i.e. JdoTemplate+JdoCallback, JdoTransactionManager, LocalPersistenceManagerFactoryBean, PersistenceManagerFactoryUtils etc. Note that JDO only allows modifying persistent objects in a proper JDO transaction, not flushing in auto-commit mode else like Hibernate. This also means that JDO cannot take part in a JTA transaction as easily as Hibernate can: You'll need to deploy the JDO implementation as JCA connector for this. BTW, I've developed and tested the JDO integration with Solarmetric's Kodo. > > - With JDO, there's another fundamental issue, especially for web apps: Persistent objects can only be used within a transaction resp. with an active PersistenceManager. Outside of that, e.g. when returned by a business service to a web GUI, it is only usable when explictly made transient. Unfortunately, a transient instance cannot be reassociated with a new transaction, e.g. for updating after the user made changes via a web form. You'll have to use value objects for this, or copy properties from the transient instance to a freshly loaded one. I will add JDO and Hibernate AOP interceptors, but not for 0.8. > - Currently, mapping multiple URLs to a MultiActionController via PropertiesMethodNameResolver needs to duplicate the mapped URLs: Both in the UrlHandlerMapping to the controller, and in the MethodNameResolver to the methods. I'd like to allow URL prefixes for mappings, i.e. "/ticket" to the controller (meaning "/ticket*"), and e.g. specifying "/ticket/update" or just the "/update" subpath for a certain method (configurable if full path or not). Yes, duplication is a pain. It would be good to address this. > - A quite general one: I'm not sure if "ControllerServlet" is an ideal name for a servlet that dispatches requests to handlers, as it just deals with handler Objects. "Controller" is Spring's default handler type. This can cause some terminology confusion: a "Controller" being a specific handler, "ControllerServlet" being the generic dispatcher to Object-type handlers. I'm aware that the servlet name stems from the "front controller" pattern, but I just don't consider that an appropriate name for a dispatcher pattern. All things considered, I'd prefer "DispatcherServlet" - a clearer statement of its role. BTW, WebWork uses "ServletDispatcher", IMHO better than Struts' "ActionServlet". I'm happy with changing to DispatcherServlet. Rod |