Hi Drew, For what it's worth, here are my experiences with RIFE.
For the following points: -- I want to use an Interface/Implementation approach, so each Class will have a dedicated interface, so I can change the Class implementations later on (i.e. Interface: ItemDAO; Implementations: HibernateItemDAO, JDBCItemDAO). -- I would like to be able to use IoC to inject dependencies using setter or constructor injection. To follow the previous example, ItemService (Interface) will have a method called setItemDAO(ItemDAO dao), and the container (Spring or Yan/Nutts) will inject HibernateItemDAO or JDBCItemDAO per configuration. -- I would like to use an ORM + Database Caching solution, preferably Hibernate 3.2. -- I would like to be able to define database transactions either programmatically in the Services (Business Logic) layer or using an AOP approach similar to Spring with XML configurations. For the points above, I do exactly those things in my project, using Spring and Hibernate, and have no problems integrating RIFE. -- This application needs to support i18n (language + layout). My application is available in English and in French, and RIFE has very good support for i18n. -- I would like to use Log4j and commons-logging for all logging purposes. No problem there. -- I would like to use a Testing framework, such as JUnit. RIFE is easy to test because independent of the Servlet API and also possible to run out-of-container. -- I would like to use Java 5 features, such as generics as much as possible. (For example in the DAO layer) (Not too crazy about annotations though) Exactly how I feel, and RIFE has a Java 5 version available. I use the generics and type-safety, but not annotations. -- Can I meet these requirements by ONLY using Rife, or I need to integrate Rife with other libraries/frameworks? Well, above you mentioned wanting to use Hibernate, and possibly Spring. No problem there. If you want use *only* RIFE, you do have database support. As for IoC/DI, I'm not sure what kind of support RIFE offers for this. (Anyone else has more info on this?) Basically I started my project from the bottom up, and I hadn't even picked my web app framework yet. So I implemented using Hibernate and Spring, as much functionality as I could without being tied to any web app framework (as it should be, those services don't even "know" about the user interface). Then I added RIFE for the UI. What really sold me on RIFE was the templating mechanism and the way elements are defined and wired together with flow links and data links. However if you pick RIFE from the start you can use more of it (for the database layer, example), and have nicer integration there. Hope this helps..keep us informed on your thoughts about the design points that you raised, because I'm sure others are interested in these as well. Frederic _______________________________________________ Rife-users mailing list [email protected] http://lists.uwyn.com/mailman/listinfo/rife-users
