You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@jakarta.apache.org by Chad Meadows <cm...@us.ibm.com> on 2004/01/08 01:26:46 UTC

New Project Proposal





I am an IBM employee who has developed a new type of framework which
incorporates Velocity as well as adds some enhancements to the core
package.
We are considering Open Sourcing this framework and are attempting to
determine the appropriate host.
This framework exists currently on top of Struts and Velocity and provides
a new method for managing the presentation layer using xml rules.
In the future, the plan is for the template engine to be pluggable, as
there is some interest for it to operate with freemarker as well.

I am interested from a high level, is jakarta-apache interested in hosting
this project.  I would want to be the technical lead in control of project
leadership and accepting contributions.  At present I only have myself as a
committer, but could probably find a couple of others for that role if
required.

Enhancements to velocity include:
1. Performance enhancements.
2. Added interface to allow filters to be applied to templates.
3. Added interface to allow templates to be cached after rendering.
4. New Resource Loader.
These core enhancements could be potential candidates to be incorporated
into the main Velocity stream.  They may need some refinement to be
accepted.

This contribution contains more than just velocity specific enhancements or
additions.  It is a framework in itself, the framework's function could
technically be incorporated on top of other template engines or even JSP's
(hopefully nobody would want that) .  Therefore, I don't think it fits into
velocity-tools.  It contains some subclasses to Struts servlet as well
which allows this framework to be loaded as a plugin to Struts.  Note, it
is not dependant on Struts, but there is extra functionality offered
through the use of Struts.
I think this fits nicely into Jakarta, but probably as its own project, not
as a subcomponent of velocity or struts.  The codebase is not that large,
it derives an enormous amount of functionality from leveraging a large
amount of Open Source.  However, its concept and direction is unique from
its XML rules based presentation layer.  I have been calling this framework
MVC-X myself ;-) for an extended MVC which has a dedicated controller just
for the view layer which in this case is the xml rules.

High Level features:
   XML Rules based Presentation.  This is quite extensive in features which
   are the core of the framework technology. Briefly, allows layouts (
   somewhat like tiles ) to be defined in xml as well as applying dynamic
   condition to how the layouts are performed.  It basically allows logic
   to be removed from the templates and the java code and exist in xml.
   The portion of the framework is controller and template engine agnostic.
   Chained template filtering
   Session state aware template caching
   JSP include support.  Technically allows any servlet output to be
   included in a template.
   Struts subclass enhancements include:
   High volume overload support
   Hot configuration update
   Enhanced Plugin Model
   CRON timer plugin
   Properties Plugin
   Universal Resouce Loader

A list of Open Source packages which are currently used by the framework:
Struts ( Apache License )
Velocity (Apache License )
Jakarta Commons (Apache License)
Jakarta ORO (Apache License)
LOG4j (Apache License)
XMLRPC (Apache License)
Jakarta Regexp (Apache License)
Xerces (Apache License)
Quartz ( LGPL ) - CRON library
HTMLParser (LGPL) - utility for parsing/filtering html
Cvslib ( Sun Public License) - optional component which allows framework to
publish CVS as a website.
Castor ( planned in future release )
AspectJ ( planned in future release )
Freemarker ( planned in future release )

Thanks,

Chad Meadows,  Software Engineer
Research Triangle Park
T/L 526-2894
cmeadows@us.ibm.com