WebMacro 0.94 was released today
WebMacro's creation several years ago led to a radical shift in the way people develop Java servlets. Several competing versions have popped up since then, based on the same model, and WebMacro itself continues going strong.
The idea behind WebMacro is that everyone should own their own work. A page designer should be able to create the look, feel, and flow of a site without requiring help from an application programmer. An application programmer should be able to implement functionality without having to trip over HTML codes. And a core developer should be able to implement an object model representing a business's core functionality without dealing with either the servlet API or HTML.
Essentially this is a Model/View/Controller approach to servlet design. Since WebMacro's initial release a few years ago lots of people have talked about MVC for servelts--but few systems actually implement a pure MVC environment. JSP certainly doesn't, providing you the tools to enforce an MVC design on yourself, but offering no language support for the concept.
In WebMacro the model component is a set of JavaBeans. WebMacro can automatically instantiate JavaBeans on a template, introspect them, and analyze them so that they can be used on a page as-is, with no additional effort required on the part of a bean developer.
The view component is a template. It contains some simple script codes to enable repeating blocks, conditional inclusion, pulling in external URLs and so forth. No programmatic logic is allowed or possible inside the view.
Finally, the controller is the servlet itself: it's responsible for managing the session, working out which view to return, and performing session management tasks like reporting and tracking.
has been a long time coming but it adds a lot on top of this model. WebMacro is now a completely pluggable framework, which loads all of its core components from a configuration file. Thus you can change how templates are loaded, what syntax is available within a page, how templates are parsed, and most everything else.
Also new in recent versions of WebMacro are context tools. A ContextTool allows you to automatically instantiate a Java bean on a template. Back end programmers then provide a set of beans which front-end template developers can use at will.
This gives the template designers the freedom to create the pages they want, and the back end developers the freedom to write pure Java code. Everybody gets to own their own work.