So why another new web framework?

Waffle is built upon the following:

  • Simplicity
  • Convention based approach (like Ruby on Rails)
  • Components following Dependency Injection (DI) pattern
  • No singletons
  • No mandatory dependency on XML (and NOT annotation heavy)
  • Java 5 and above
  • Pluggable design for Waffle itself
  • AJAX Ready

What is meant by "Convention based"?

A convention based approach allows for a simpler design and less architectural overhead. As an example think about how unit tests are developed with JUnit. By convention any Class postfixed with "Test" or "TestCase" is considered a unit test. Each method within that test class prefixed with "test" will be executed.

So in the Waffle world, conventions are used for tying web forms and actions to methods in Java classes.

What's so great about Dependency Injection (DI)?

Developing application with a focus on componentization allows for very flexible and testable architectures. The problem is that the J2EE servlet specification does not allow applications to be easily architected with DI in mind. Hopefully you'll see that Waffle allows you to develop an application in a cleaner way while still being J2EE compliant.

To read more about DI - see http://www.martinfowler.com/articles/injection.html

What is wrong with XML?

To quote Paul Hammant "angle brackets hurt my eyes". Honestly, XML is great and serves a purpose but who wants to spend their days dealing with it. Configuration XML files for most web frameworks have a tendency to be verbose and error prone. The only XML required by Waffle is the standard web.xml, and even that is cut to a minima.

There is nothing to stop a Waffle application from using its own XML for configuration, but Waffle itself is going to leave that to the application developer rather than force an implementation on them.

Why is it called Waffle?

It stands for Web Application Framework For Lightweight Extendible Components. Yes, we know that would make it WAFFLEC, so lets say you're supposed to say "Waffle Components". Yes, we know that sounds a bit contrived, but the truth is we had Waffle first, then we tried to fit something meaningful to it. We know waffle in British English means "long winded" or "overly chatty", but we're preferring to ignore that. No we won't rename it. Sorry, we're kinda fond of it now.