The Apache Commons Jelly team is pleased to announce the commons-jelly 1.0.1 release!

http://commons.apache.org/jelly/

Jelly is a Java and XML based scripting engine. Jelly combines the best ideas 
from JSTL, Velocity, DVSL, Ant and Cocoon all together in a simple yet 
powerful scripting engine. 

This is the second stable release of Jelly. It can be used as a standalone application
to run scripts, or incorporated into your Java applications.

Notable changes since the 1.0 release:
- JELLY-293: Accommodate toggling off DTD external entities.

Have fun!
-The Apache Commons team
      
