TODO
        The following is a list of items that need to be completed in
        Jelly.  Contributions are welcome!.
      
Core tasks
        - Implementa a META-INF/services mechanism for mapping Jelly libraries to namespace URIs
            in a similar way to how the commons-discovery and JAXP libraries work.
            This would allow Jelly libraries to be distributed in a self contained JAR then just put
            on the classpath and they'd be usable.                
        
 
        - 
            Implement a JJAR/Maven mechanism so that using a new Jelly library via a namespace URI would
            automatically download the jar and its dependencies from some local/remote repository.
        
 
        - Maybe add a Scope class to make it easier to plugin custom scopes such as 
            request, session, applicaiton, initParams, params, transation etc.
            In a workflow setting this could also include transient and persistent scopes
        
 
        - Write a JellyServlet so that Jelly can be used as a page templating system.
        
 
        - Implement a HTML parser for Jelly, probably using NeckoHTML so that non-XML can be parsed
            and tags with prefixes can be bound to Jelly tags.
        
 
        - write a Cocoon JellyGenerator so that Jelly scripts can be used easily inside Cocoon
 
        - consider implementing a Jelly Doclet so that Jelly can be used to code generate
            stuff from javadoc tags in a similar way to XDoclet but making use of the JSTL tags and
            the Velocity like expression language (Jexl) which will avoid the need to use huge numbers 
            of tags.                
        
 
        - Rename the DynaTag interface to be DynamicAttributes along with JSP1.3, 
            also add a namespace URI parameter
        
 
        - Add support for namespace URI use inside XPath expressions.
 
        - When defining new tags using <define:tag>, we should allow attributes to be named,
            specified as required, specify the optional conditions and so forth for validating instances.
 
            I guess this could just be normal script though.
         
        - The org.apache.commons.jelly.impl package doesn't have a great name - 
            Can we think of a better one? 
            Also some of the classes in this package could maybe do with a rename? 
            ScriptBlock for example - should we just call it a Block or maybe a CompositeScript?
         
        - Add an adapter to run JSP tag libraries inside Jelly when Jelly is used in a 
            Servlet / JSP environment?
        
 
        - Document much more!
 
      
Ideas for new tag libraries
Changes to existing tag libraries
        - Add JSL test cases to test for ordering of patterns and that the correct output comes out.
 
      
Ponder about
        The following is a list of things that might be good to add to Jelly, maybe after more thought.
      
        - 
            maybe consider a tag which will switch the default EL to XPath; then XPath and EL can be peers. Then ${foo}
            can be used as an XPath expression anywhere
        
 
        - We could autogenerate XML Schemas or RelaxNG docs for tag libraries to help validate scripts
 
        - Patch TagLibrary to alias all <mixedCase> tags to <mixed-case>  tags