Open Source MVC (Turbine - Struts - Espresso - Barracuda)


Web tier: servlets, JSP, Web frameworks: Open Source MVC (Turbine - Struts - Espresso - Barracuda)

  1. Anyone developed with these? Comparisons? Strengths/weaknesses?
  2. Done some research on Turbine in the past, looked promising. Also used Struts a bit so here are it's pros...


    * Supports MVC very nicely.
    * Provides excellent tag extensions for JSPs.
    * Promotes a performant system (Action classes are all single instance, multi thread etc.
    * Probably the most mature of all these frameworks.


    * Bean instances are cached somewhere internally. Strange things can happen if some of your classes are reloaded by the servlet engine.
    * Action classes execute methods take FIVE! arguments. * Clearly a case for using a Memento pattern to my mind.
    * Of these arguments, most are related to the servlet API. I think it's a cardinal sin to do this, they should have been abstracted and wrapped in an interface Memento. This is letting view logic into the controllers and I don't like it. (That's just my opinion of course! :-))
    * This renders the action classes non reusable outside the Http scope, when it could be just as valid to get an async request for that action over JMS.
    * Actions are NOT ALLOWED to throw exceptions. I hate this. I think a chained exception should be used so you can catch an exception and wrap it in an ActionExecutionException or something similar. You are FORCED to catch exceptions and swallow them. So, if you want them logged you have to do it there, which is almost certainly not where you want to log them.
    * When I last tried to use it, the documentation was terrible. It describes the design very well, but gives next to no concrete examples of how to use the classes, or the tags, and makes you work it all out for yourself. Hopefully it's better these days, but I remember being dissapointed.

    I appreciate the list of cons is a lot longer here, but that doesn't mean I don't like it. It's probably a safe choice for building this kind of MVC system. The smaller list of pros contains big items (promoting performance, enforcing MVC etc.) The cons list is about somewhat smaller things.

    Thats just my view any way.


  3. Take a look at Maverick. It is an interesting MVC framework that users XSL(T) to provide presentation formatting and pipelining.

    maverick <>