Feather Web Framework
Marcus R. Breese
Posted: Apr 28, 2008
Updated: Apr 28, 2008
I noticed that there was a new link on DZone today advertising a blogging engine for Ruby named "Feather". Well, I thought I'd take this opportunity to re-introduce my Java web framework named Feather. :) (Isn't name collision fun?)

(My) Feather is yet-another Java web framework. It isn't trying to take over the world, just the part of the world that uses Java and writes web apps. Oh, and the ones that want the web framework to do as little as possible. As such, Feather really only deals with the Controller aspects of an MVC web app (there are some utilities to help with the model and view, but they aren't required). I started it because I got frustrated with Struts and the 6 files I needed to edit to add a new action. It is used internally for a few applications, but is available under the Apache license.

The basic idea is that you don't need to extend an abstract class or implement an interface to create controllers for web apps. You write a plain java object that has normal methods. The methods are then wired up to incoming requests through regular expression @Path annotations. The methods can have any number of parameters that are auto-injected by Feather based upon request parameters, session attributes, etc... This is also configured using annotations. The only requirement for a Feather action is that the method must return a Feather Result object. This can send the user text, html, forward them to another URL, dispatch to a JSP page, etc...

The documentation is quite light (non-existant), but I'm more than willing to help anyone understand what is going on. Out of the box, it will work with Spring or Guice to build your controller objects, so you can inject anything that you want into your objects. You can create a fresh object for each request, or use a singleton for all requests. The easiest way to get started is to extend the FeatherFilter class, and add that to your web.xml file.

More information is available at http://feather.fourspaces.com