News
October 11th, 2008
Waffle 1.3 is released.
September 10th, 2008
Waffle 1.2 is released.
May 7th, 2008
Waffle 1.1 is released.
January 19th, 2008
Waffle 1.0 is released.
Waffle Web Framework
Waffle is a Java web framework that makes the process of
developing Java based web applications easier. It was built to support
enterprise level web-based business applications, but with the least
possible number of source lines to achieve that.
Waffle is different from the multitude of web frameworks that
exist today, in that Waffle:
- has no mandatory XML configuration files
(beyond a minimalist web.xml required by any J2EE-compliant webapp)
- is interoperable with best-of-breed UI templating technologies
- does not have a base controller class to extend or interface to implement
- has controller classes that can support multiple actions, each a single method rather than a sequence of initialiation/settter/execute methods
- has a small learning curve
Application built upon Waffle only need to be aware of three
things:
- Controllers - in Waffle a
Controller class is simply a plain old Java object (POJO), ie it does not
need to extend or implement any specific class or interface.
- Action Method - in Waffle an Action Method is
simply a method defined in your Controller class (and optionally annotated with @ActionMethod). Any method can be
used regardless of its signature or return type. Waffle will react
differently depending on what is returned from the ActionMethod, see
Action Methods for further details.
- Registrar - the Registrar class is where the Controllers,
and other components your application depends on, are registered.
Typically, most web frameworks require your applications to create special XML file(s)
for this, but int Waffle Registrars are Java objects that allow you to implement
your business logic more efficiently. Of course, Waffle does allow -
but does not mandate - a Registrar to read a configuration from a file,
be it XML or a scripting language.
Additionally, Waffle provides:
- Transparent REST functionality for controllers.
- Transparent JSON functionality for controllers.
Choices of markup language
As Waffle does not come with a HTML markup technology, it plays
well with other 'best practice' and established solutions, such as:
- JSP - with or without supplied taglibs
- Freemarker
- Velocity
- Ruby's ERB
Getting started
The best way to get started is to look at the examples