Hi Drew,

-- 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).

Sure, no problem doing that.

-- 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.

RIFE doesn't support IoC injection for anything else than element instances. For full blown IoC support you can integrate with Spring, PicoContainer or ...

-- I would like to use an ORM + Database Caching solution, preferably Hibernate 3.2.

Sure, several people are using external database solutions with RIFE. You're not tied what RIFE provides you here (though it might be worth looking into).

-- 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.

If you're using an external library for ORM, just use whatever that provides. If you use RIFE's database layer, transactions can't be declared outside of the code. However, we have support for chained transactions where you can specify anywhere an inTransaction method and the database layer will detect that a transaction is active:
http://rifers.org/wiki/display/RIFE/Chainable+transactions

While I haven't tried this, it should be theoretically possible to do this using AOP with AspectJ for instance.

-- I would like to be able to abstract and disconnect (over the wire, ie SOAP) the Backend Services from the Web UI in future. (This is not a major requirement at present)

RIFE has good support for SOAP (using XFire), Hessian and REST:
http://rifers.org/wiki/display/RIFE/Webservices

-- This application needs to support i18n (language + layout).

RIFE's i18n is very extensive, though not dynamic. Pierre has been worked on a large contribution to allow for dynamic support. It seems feature complete, I just need to find the time to play with it before committing it to the main branch.

-- I would like to use Log4j and commons-logging for all logging purposes.

Sure, no problem, just make sure that the commons-logging jar isn't part of your web application and that you put it in your servlet container common libraries dir. Otherwise you'll run into classpath issues.

-- I would like to use a Testing framework, such as JUnit.

Sure, RIFE provides an extensive API for out-of-container testing. You can use any testing framework with it. My personal preference goes to TestNG:
http://rifers.org/wiki/display/RIFE/Out+of+container+testing

-- 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)

Sure, no problem.

I have a similar hesitation about annotations. For meta data support we have our own mechanism, called constraints (http://rifers.org/wiki/ display/RIFE/Constraints). The main advantages over annotations is that they can be totally isolated from the POJO implementation (http://rifers.org/wiki/display/RIFE/Meta+data+merging), and that they are dynamic and instance based (annotations are static and class based).

-- And, I would definitely like to use Rife as the front-end technology since I really like the logic less templates, continuations, the whole element approach and the email queue and ... list is too long.

Great! :-)

Now my questions:
-- Can I meet these requirements by ONLY using Rife, or I need to integrate Rife with other libraries/frameworks?

If you have a hard requirement for Hibernate, you'll have to use that of course. However, you'll find that RIFE database layer is quite capable and might actually do what you need, and more efficiently.

-- How does Rife meet these requirements?-- Which of these requirements will not be met by Rife and what are the third-party integration options?

See above.

-- How is Rife's performance for each of these requirements?

RIFE's performance is generally very good and it has been running on several big Belgian public sites. Of course, for anything critical, you're encouraged to do your own benchmarking. If you do happen to find a bottleneck, please let us know we'll do our best to fix it.

-- I guess I can sum up all these questions into "Can I just use Rife to solve all my problems???" (Just kidding)

For most of them you can just use RIFE.


Hope this helps.

Best regards,

Geert

--
Geert Bevin             Uwyn bvba               GTalk: [EMAIL PROTECTED]
"Use what you need"     Avenue de Scailmont 34  Skype: gbevin
http://www.uwyn.com     7170 Manage, Belgium      AIM: geertbevin
gbevin at uwyn dot com  Tel: +32 64 84 80 03   Mobile: +32 477 302 599

PGP Fingerprint : 4E21 6399 CD9E A384 6619  719A C8F4 D40D 309F D6A9
Public PGP key  : available at servers pgp.mit.edu, wwwkeys.pgp.net


_______________________________________________
Rife-users mailing list
Rife-users@uwyn.com
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to