What the Heck is Barracuda?
barracuda.gif (11357 bytes) This document is meant to give you the fastest possible introduction to Barracuda, so you can decide whether or not you should bother learning more.

Barracuda is an open-source Presentation Framework designed to make it easier to build servlet based webapps by applying proven client-server patterns to the web development paradigm.

Key features include:

  • DOM based templating mechanism for better separation of code from content (default implementation uses XMLC...see http://xmlc.enhydra.org).

    The basic idea is that you compile *ML templates into DOM objects, which can then be manipulated programatically--you insert the data and then render the DOM. This yields clean separation of code from content.

  • UI component model that provides a series of server side widgets (table, list, template, etc) that make it easy to manipulate DOM structures. Strongly typed MVC interfaces just like in Swing. Support for multiple markup languages (HTML, WML, XML, etc).

    The basic idea is that you can use components to do the DOM dirty work--you put your data into the components, and let the components render it into the DOM. Components support URL rewriting, disabling the back button, and much more. Some components even allow you to add event handlers to them so that you can be notified when something happens on the client. Cool.

  • Event model that provides Model 2 style flow control and allows for true event driven programming on the server. You can add listeners to components and your server-side event handler code will automatically get notified when an action occurs on the client.

    The basic idea here is that event driven programming makes for looser coupling with higher cohesion--the Barracuda event model makes it possible to use events in a web paradigm. You can easily control program flow, and events can hierarchies can be gerneated declaratively from xml. You won't find a more flexible, powerful approach to events out there.

  • Form mapping and validation framework that makes it possible to easily convert HTTP Request form parameters into first class Java objects and validate them.

  • Localization services that extend the XMLC compiler to make it really easy to localize DOM templates and then load them based on target locale

  • Barracuda builds using Ant 1.4, and includes several custom taskdefs to streamline the development process.

  • Based on the Servlet 2.2+ API (so it'll run in any decent app-server).

  • And of course it's available as open source under the Enhydra Public License (EPL)! ;-)

For more details, check out the website--source is available under CVS, there's a rapidly growing user base, a mailing list to ask questions, lots of documentation, sample apps, yadda, yadda, yadda.

For all the latest information on Barracuda, please refer to http://barracudamvc.org
Questions, comments, feedback? Let us know...