jvanzyl     00/10/12 18:49:45

  Added:       docs     todo.html
  Log:
  - added todo. whoops.
  
  Revision  Changes    Path
  1.1                  jakarta-velocity/docs/todo.html
  
  Index: todo.html
  ===================================================================
  <HTML><HEAD><TITLE>Velocity Todo</TITLE></HEAD><BODY alink="#023264" 
bgcolor="#ffffff" leftmargin="4" link="#023264" marginheight="4" marginwidth="4" 
text="#000000" topmargin="4" vlink="#023264"><TABLE border="0" cellpadding="0" 
cellspacing="0" width="100%"><TR><TD align="left" valign="top"><A 
href="http://jakarta.apache.org/index.html"><IMG border="0" hspace="0" 
src="resources/jakarta-logo.gif" vspace="0"></A></TD><TD align="left" 
bgcolor="#ffffff" valign="top" width="100%"><IMG align="right" alt="" border="0" 
hspace="0" src="resources/header.gif" vspace="0"></TD></TR><TR><TD><IMG border="0" 
height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"></TD></TR><TR><TD 
background="resources/line.gif" colspan="2" height="2" width="100%"><IMG alt="" 
border="0" height="2" hspace="0" src="resources/line.gif" vspace="0" 
width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" 
width="100%"><TR><TD valign="top" width="1%"></TD><TD nowrap="1" valign="top" 
width="14%"><BR>
  
  <P></P>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="index.html">Overview</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="getting-started.html">Getting Started</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="install.html">Install</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="design.html">Design</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="script-elements.html">Script Elements</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="contributors.html">Contributors</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="code-standards.html">Coding Standards</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="license.html">License</A></LI></FONT>
      <FONT face="arial,helvetica,sanserif" size="-1"><LI><A 
href="todo.html">TODO</A></LI></FONT>
  </TD><TD align="left" valign="top" width="*"><TABLE border="0" cellpadding="3" 
cellspacing="0"><TR><TD><BR>
  
   
  
  
  
  <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" 
width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" 
face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" 
src="resources/void.gif" vspace="0" width="5"><B>Todo</B></FONT></TD></TR><TR><TD><IMG 
border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" 
width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" 
width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  
  <P align="justify">
  This is an informal document describing what needs to
  be done in the Velocity code base, and the 
  Velocity documentation. If you need more detailed help, please 
  send mail to the mailing list 
  (<A 
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</A>)
  and ask your specific questions there. The list below is vaguely in order of
  importance.
  </P>
  
  </FONT></TD></TR></TABLE></DIV><BR>
  
  <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" 
width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" 
face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" 
src="resources/void.gif" vspace="0" width="5"><B>The 
List</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" 
src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" 
cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" 
face="arial,helvetica,sanserif">
  
      <B>Runtime API</B>
      <BR>
          The Velocity Runtime is the single access point for all
          of Velocity's functionality. A standard API for the
          Runtime should be defined so that in the span between
          the 0.5 Milestone release and a 1.0 release, the Runtime
          API changes as little as possible.
      <P align="justify"></P>
  
      <B>JUnit Test Suite</B>
      <BR>
          A JUnit test suite would allow Velocity developers to
          aggressively add, refactor, and optimize code. We need
          a comprehensive test suite so that we can
          be assured changes in the code base have no adverse
          effects for users. <A href="mailto:[EMAIL PROTECTED]">Daniel L. Rall</A>
          has started us off with some code so you may want to contact
          him if you are interested in working on a JUnit test suite.
      <P align="justify"></P>
  
      <B>Directive Interface</B>
      <BR>
          Right now there is a very thin interface for directives, but
          some knowledge of JavaCC is required. The directive
          interface is not intended to be used outside core Velocity
          developers (it is not intended to be a public API), but it
          probably makes sense to shield directive creators from JavaCC.
      <P align="justify"></P>
  
      <B>Context</B>
      <BR>
          The Velocity Context class is still fairly primitive. It
          loosely adheres to a Map, but it definitely needs some
          thinking. It works fine now, but it might be good to
          think about: how to load standard tools and how to
          make that process efficient; how to stamp items in
          the context with expiry durations so that items can
          be cached and how this might work.
      <P align="justify"></P>
  
      <B>Sample Applications</B>
      <BR>
          Any type of sample application would be useful to
          help kickstart new developers get acquainted with
          Velocity. Any suggestions are welcome.
      <P align="justify"></P>
  
      <B>User Guide</B>
      <BR>
          This would be a guide for designers who would
          be using the Velocity Template Language (VTL) to
          create templates. The users guide would give
          example usage and a definitive description
          of the VTL syntax. <A href="mailto:[EMAIL PROTECTED]">Jason van Zyl</A>
          has started work on this with John Castura, but any and all
          suggestions are welcome.
      <P align="justify"></P>
      
      <B>Developer Guide</B>
      <BR>
          This would be a guide for developers who would use
          Velocity as a stand-alone servlet tool, or in conjuction
          with a servlet controller framework like Turbine.
          <A href="mailto:[EMAIL PROTECTED]">Jason van Zyl</A> is
          currently working on this guide, but any and all suggestions
          are welcome.
      <P align="justify"></P>
      
      <B>Template Loader System</B>
      <BR>
          The template loader system is functional but could probably use an
          overhaul. There is currently a double template instantiation
          problem. It is not causing any serious problems, but it
          should probably be corrected. We could probably utilize some
          object caching/pooling code from Turbine, or JServ, or the
          Avalon Server Framework.
      <P align="justify"></P>
  
      <B>Caching</B>
      <BR>
          It would be good to have a discussion about how objects
          in the context should be cached, how the caching
          should be specified, and who should control the
          caching: the designer by specifying something in the template, the developer
          by place expiry times on objects placed in the context,
          or a third party like a content manager. For example,
          say an array consisting of a top 10 list of books is
          placed in the context. This top 10 list might be valid
          for a 24 hour period: how should that be specified? Say
          a content manager decides that this list is now valid
          for a week. Do they tell the designer, who in turn changes
          the template, or could we provide a mechanism that would
          allow a content manager to change the default expiry time
          for that particular context object with the aid of a webapp 
          of some sort? The groundwork has be laid for a flexible
          caching system in Velocity, but this discussion would be
          one of usage and policy.
      <P align="justify"></P>
  
      <B>Parser Pool</B>
      <BR>
          It would be good to create a pool of parsers that could
          be utilized by the Runtime. Right now there is only a single
          parser and the parsing is synchronized. The parsing doesn't
          happen all that often in production, but a small pool of
          parsers might alleviate any potential bottlenecks. Again,
          object caching/pooling code could be borrowed from Turbine,
          JServ, or the Avalon Server Framework.
      <P align="justify"></P>
      
      <B>Encoding Caching</B>
      <BR>
          What would this entail? And how could we implement an
          efficient encoding mechanism.
      <P align="justify"></P>
      
      <B>Plugins</B>
      <BR>
          It would be good to allow plugins in the form of JAR files
          to be picked up the Velocity Runtime during startup. This
          would be a good way for Velocity developers to share tools
          that could be used in a context. For example there are some
          utilities in Turbine that allow email to be sent from within
          a template. It might be good to package this sort of utility
          in a JAR file so that there are no dependencies in the
          Velocity build for a specific utility.
      <P align="justify"></P>
      
      <B>Context Tools</B>
      <BR>
          What kind of tools might be good to add to Velocity. There
          are several utilties that have been created in Turbine that
          might be good to move over to the Velocity code base.
      <P align="justify"></P>
      
      <B>Syntax Dumper</B>
      <BR>
          Right now there is a primitive syntax dumper in the Velocity
          code base, but it could be improved. This tool is very helpful
          in debugging, and it is also good for creating directives.
          It basically has a simple dump method that is used for all
          the AST node types. It would be good to tailor dump methods
          for particular AST node types so that the structure produced
          is a little clearer.
      <P align="justify"></P>
      
      <B>Syntax Checker</B>
      <BR>
          It would be good to have a standard syntax checker. Something
          that would find all syntax errors and report them to the
          designer in some intelligible format. This tool could be
          hooked into various designer tools like DreamWeaver.
      <P align="justify"></P>
      
      <B>Extended Properties</B>
      <BR>
          There are classes that are present in JServ, Turbine and Cocoon
          that allow a more flexible properties mechanism. It allows properties
          files to be 'included', and allows the concatentation of the values
          of multiply defined properties. These classes are very good and
          should be integrated into Velocity.
      <P align="justify"></P>
  
      <B>Compiler</B>
      <BR>
          It would be great to have a template compiler. There is a great
          utility call JavaClass that provides a very clean and simple way
          to create class files; there is also some byte code generating
          code present in the DynamicJava package that could be utilized.
      <P align="justify"></P>
  
      <B>IDE Integration</B>
      <BR>
          How could Velocity be integrated into standard IDEs like
          JBuilder and VisualAge?
      <P align="justify"></P>
      
  </FONT></TD></TR></TABLE></DIV><BR>
  
  
  </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" 
cellspacing="0" width="100%"><TR><TD bgcolor="#023264"><IMG height="1" 
src="resources/resources.gif" width="1"></TD></TR><TR><TD align="center"><FONT 
color="#023264" face="arial,helvetica,sanserif" size="-1"><I>
                Copyright &copy; 2000 The Apache Software Foundation.
                All Rights Reserved.
              </I></FONT></TD></TR></TABLE></BODY></HTML>
  
  

Reply via email to