<?xml version="1.0"?>

<todo title="Things To Do" project="Xalan" major-version="2">

 <devs>
  <!-- in alphabetical order, by last name -->
  <person name="Scott Boag" email="scott_boag@lotus.com" id="SB" expertise="code">
    Xalan architect, lead developer on Xalan-J 2.x.
  </person>
  <person name="Shane Curcuru" email="Shane_Curcuru@lotus.com" id="SC" expertise="test">
    Lead tester for API issues, automation framework.
  </person>
  <person name="Paul Dick" email="Paul_Dick@lotus.com" id="PD" expertise="test">
    XSLT Conformance stylesheet issues and Xalan-C testing.
  </person>
  <person name="Joseph Kesselman" email="Joseph_Kesselman@lotus.com" id="JK" expertise="code">
    Xalan-J 2.x developer, compiling/compiled stylesheets experiments.
  </person>
  <person name="Donald Leslie" email="donald_leslie@lotus.com" id="DL" expertise="doc">
    Xalan-J and -C documentation, servlets and samples.
  </person>
  <person name="Costin Manolache" email="cmanolache@yahoo.com" id="CM">
    Xalan-J 2.x developer.
  </person>
  <person name="David Marston" email="David_Marston@lotus.com" id="DM" expertise="test">
    Lead tester for XSLT Conformance stylesheet issues.
  </person>
  <person name="Myriam Midy" email="myriam_midy@lotus.com" id="MM" expertise="code">
    Xalan-J 1.x and 2.x developer.
  </person>
  <person name="Gary L Peskin" email="garyp@firstech.com" id="GP" expertise="code">
    Xalan-J 1.x and 2.x developer, especially extension mechanisim.
  </person>

 </devs>

 <actions>

   <target-release-description>
    <date>12/15/00</date>
    <level>beta</level>
    <goal type="conformance">XSLT 1.0 and XPath 1.0 compliant, 98% conformance test passage.</goal>
    <goal type="performance">Reasonable, competative performance. [need metrics]</goal>
    <goal type="stability">Stable, reasonable.</goal>
    <goal type="api">API Complete.</goal>
    <goal type="documentation">Documentation functionally complete.</goal>
   </target-release-description>

  <!-- Move to completed section when done. -->

  <action context="code"  category="conformance" priority="high">
    Check relative URL resolution with notations and unparsed entities.
    Not sure if there is a bug here.  See note from Thomal Maesing on
    10/24/2000, titled "Antwort: Re:".
  </action>

  <action context="test" category="feature" priority="high">
    Update the xml-xalan\test\viewResults.xsl stylesheet to show 
    differences between two result files from the same test (eg.
    show differences from a results-before.xml run before a developer 
    makes a change, with results-after.xml, which was after the 
    developer's change.)
    This could be a bunch of stuff added to viewResults.xsl or could 
    be a separate stylesheet. See <b>SC</b> for details.
  </action>
    
 </actions>

 <actions>

   <target-release-description>
    <date>01/15/01</date>
    <level>production</level>
    <goal type="conformance">XSLT 1.0 and XPath 1.0 compliant, 99% conformance test passage.</goal>
    <goal type="performance">Reasonable, competative performance. [need metrics]</goal>
    <goal type="stability">Robust.</goal>
    <goal type="api">API Complete.</goal>
    <goal type="documentation">Documentation complete.</goal>
   </target-release-description>

  <!-- Move to completed section when done. -->

  <action context="code" category="feature">
    Don published a list of proposed extensions a while ago.
    I would really like to get these implemented.  This is a good
    area for part-time contributers, as the extensions have limited scope.
  </action>

  <action context="code" category="performance">
    Joe could use help with the stylesheet compiler stuff.
    Lots of work to be done there.  In particular, I would like to
    figure out how to inline some simple itterator operations,
    like select="node()" and select="foo".  Also, we need to figure
    out how to analyze a particular stylesheet's dependencies, and
    be able to package just those classes in a jar, along with the
    compiled classes.
    <issue id="issue-compiler-for-january-release">I suspect it is unlikely this
    will be ready in time for this release.</issue>
  </action>

  <action context="test" category="feature" priority="high">
    @todo need to find an HTML to DOM parser we can use!!
    Get a good, apache-licensed HTML-to-DOM parser checked into the 
    xml-xalan\test\java repository, for use by org.apache.qetest.xsl.XHTComparator
  </action>

  <action context="test" category="tests" priority="medium">
    Get more real-world stylesheets checked into xml-xalan\test\tests\contrib.
    We need more real-life examples of how people are using stylesheets, along 
    with expected outputs (in contrib-gold) - we can then run our test driver 
    over the whole set of them easily to get more test points.
    Note: please feel free to contribute tests here - the committers 
    will review and move tests into conformance, product, etc. test 
    areas as needed, but we can always just run ContribTest on any tests.
  </action>

  <action context="test" category="tests" priority="high">
    Get extension tests checked into xml-xalan\test\tests\extend
    We have some at Lotus we need to cleanup and checkin, and we 
    hope to get more examples from Gary and other list members.
  </action>
 </actions>

 <actions priority="long-term" >
  <!-- Move to completed section when done. -->

   <target-release-description>
    <date>4/15/01</date>
    <level>beta</level>
    <goal type="conformance">XSLT 1.1 and XPath 1.0+addendum compliant, 100% conformance test passage.</goal>
    <goal type="performance">Very good performance. [need metrics]</goal>
    <goal type="stability">Stable, reasonable.</goal>
    <goal type="api">API Complete.</goal>
    <goal type="documentation">Documentation functionally complete.</goal>
   </target-release-description>

  <action context="code" category="feature">
    XPointer built on the XPath package.
  </action>

  <action context="code" packages="xpath.axes" category="performance">
    Schema-savy itterators.
    This is hard because there is no standard API for schemas yet.
  </action>

  <action context="code" id="stylesheet-analysis" packages="processor" category="performance">
    Stylesheet analysis module.  When I call a template, where is it likely to walk in the tree?
    Can I be sure that it will not walk up again?
  </action>

  <action context="code" packages="stree" category="performance">
    Related to stylesheet-analysis, the ability to throw away parts of the tree that have been processed,
    and we know we won't reuse, based on the stylesheet analysis.
  </action>

  <action context="code" packages="processor" category="performance">
    Sub-expression elimination.  When I call a series of
    xsl:when tests, are there common subexpressions that can be
    executed once and then shared?
  </action>

  <action context="code">
  </action>

 </actions>

 <completed>
  <!-- Move action sections to here when completed, and date them. -->
  
  <action context="test" who="SC" category="minitest" priority="medium" completed="12/08/00">
    Create Minitest automated test for developers to run before checkin; 
    verifies basic functionality of TRAX interface and Xalan processor. 
    (Still todo, minor: get xalan-dev list to vote to use this)
  </action>

  <action context="code" category="architecture" priority="high" who="SB" completed="12/10/00">
    Fix remaining axes tests.
  </action>

  <action context="code" category="performance" priority="high" who="MM" completed="12/8/00">
    When using STree for the input, use STree for the document() and
    result tree fragments.
  </action>

  <action context="code" category="architecture, conformance" priority="high" who="SB" completed="12/06/00">
    Restructure OutputFormat class to be based on properties.  Make sure 
    include/import conformance is correct.
  </action>
  
  <action context="code" category="architecture" priority="high" who="SB" completed="12/06/00">
    Make entities in the html serializer to be resource file driven.
  </action>
  
  <action context="code" category="architecture" priority="high" who="SB" completed="12/06/00">
    Removed linefeed normalization from serializers.  I think.
  </action>

  <action context="code" completed-date="10/31/00">
    Make this todo list.
  </action>

  <action context="code" who="SB"  category="trax" completed-date="11/06/00">
    implement javax.trax interfaces.
  </action>

  <action context="code" packages="serialize" who="SB"  category="feature"
          completed-date="11/17/00">
    Implement DOMSerializer on FormatterToXML.
  </action>

  <action context="code" who="SB" packages="xpath.axes" category="performance"
          priority="high" completed-date="11/17/00">
    implement fast iterator for "foo" pattern.
  </action>

  <action context="code" who="MM" category="performance" priority="high" completed-date="11/29/00">
    optimize xsl:key and key() stuff by building hash table of iterators for
    each key.
  </action>

  <action context="code" category="code-cleanup" priority="medium" completed="12/01/00">
    Clean up treatment of null namespaces, re "" vs. null.
    <completed-comment>I consider this to be pretty good in most places.  "" 
    equals the default namespace.  No pending plans for action, other than ongoing 
    cleanup and javadoc as it occurs.</completed-comment>
  </action>
  
  <action context="code"  category="conformance" priority="high" completed="12/10/00">
    Implement namespace aliasing.
  </action>

  <action context="code" packages="templates" category="conformance" priority="medium"
          note="done?" completed="11/29/00">
    Catch multiple definitions of a variable with the same name and scope.
  </action>
  
  <action context="code" category="code-cleanup" priority="medium" completed="11/25/00">
    Move org.apache.xalan.utils package to org.apache.xml.utils.
    remove resource dependencies on xalan and/or xpath package.
  </action>
  
  <action context="code" category="code-cleanup, performance" packages="templates"
   priority="medium" who="GP" completed="11/30/00">
    Refactored the recompose logic to operate more cleanly and quickly. Fixed TemplateList
    to properly order templates.
  </action>
  
  <action context="code" category="code-cleanup" packages="extensions"
   priority="medium" who="GP" completed="10/29/00">
    Improved error reporting for java extension method errors.
  </action>
  
  <action context="code" category="documentation" priority="medium" who="GP" completed="11/23/00">
    Updated documentation for Extension Handling to conform to the new extension mechanism.
  </action>
  
  <action context="code" category="feature" priority="medium" who="GP" completed="12/03/00">
    Changed extension mechanism to load extensions using the thread's ContextClassLoader,
    if available.
  </action>
  
  <action context="code" category="feature" packages="extensions" 
   priority="medium" who="GP" completed="11/28/00">
    Implement tokenize extension.  Implement element-available and function-available for
    built-in elements and functions.
  </action>
  
  <action context="code" category="code-cleanup" packages="extensions" 
   priority="medium" who="GP" completed="11/07/00">
     Fix handling of xsl:fallback elements within extension elements that process their own
     code (like redirect).
  </action>
  
  <action context="code" category="code-cleanup" packages="compiler" 
   priority="medium" who="GP" completed="11/09/00">
     Cleaned up compiler handling of getWhatToShow() to result in cleaner code and provide
     a more accurate filter.
  </action>
  
  <action context="code" who="SB" packages="xpath.axes" category="performance" priority="high" completed="12/13/00">
    implement fast iterator for "@foo" pattern.
  </action>

  <action context="code" who="SB" packages="xpath.axes" category="performance" priority="high" completed="12/14/00">
    implement fast iterator for "//foo" pattern.
  </action>
  
   <action context="code" category="code-cleanup" who="DL" packages="xalanservlet" priority="medium" completed="12/15/00">
     Rewrite the sample servlet to use the TrAX interfaces and eliminate setting system properties
     within the servlet.
  </action>  

  <action context="code" who="SB" packages="org.apache.xalan.serialize" category="samples" priority="high" completed="12/16/00">
    Fix the serializer so it can serialize arbitrary XPath expression results (other than Document nodes).
    As it currently stands, the ApplyXPath sample only works when you give it an expression that returns 
    the entire Document.
  </action>
  
  <action context="code" category="documentation" priority="high" completed="12/17/00">
    Fill in all NEEDSDOC sections.
  </action>

  <action context="code" category="code-cleanup" who="DL" packages="xalan.client" priority="medium" completed="12/17/00">
    Rewrite the client applet to use the TrAX interfaces, and move fetching of source
    documents and stylesheets to the trusted worker thread to get around IE security restrictions.
  </action>


 </completed>

</todo>
