Xalan-Java 2: Things To Do

See a list of developers/initials.

Planned releases:
01/19/01 4/15/01 Completed

For release: 01/19/01 , production
Goal [conformance]: XSLT 1.0 and XPath 1.0 compliant, 99% conformance test passage.
Goal [performance]: Reasonable, competative performance. [need metrics]
Goal [stability]: Robust.
Goal [api]: API Complete.
Goal [documentation]: Documentation complete.

1) No known actions pending for 2.0.0 release.
context: code, category: release


For release: 4/15/01 , beta
Goal [conformance]: XSLT 1.1 and XPath 1.0+addendum compliant, 100% conformance test passage.
Goal [performance]: Very good performance. [need metrics]
Goal [stability]: Stable, reasonable.
Goal [api]: API Complete.
Goal [documentation]: Documentation functionally complete.

1) Verify that the recomposing procedure for each of the recomposable elements matches the standard (including errata).
context: code, category: conformance, who: GP

2) Fix xsl:output method= so that it only accepts valid values per the standard (xml, html, text, qname-that-is-not-an-ncname). I'm looking into where this change should be made.
context: code, category: conformance, who: GP

3) Verify that the element-available function exhibits the proper behavior according to Errata E7 regarding the interaction between the default namespace and the element-available function.
context: code, category: conformance, who: GP

4) Add compatibility with XalanJ1 NodeSet extension, so that stylehsheets can work with both processors.
context: code, category: extensions, who: GP

5) Handle qName paramterer to the ContentHandler methods being an empty string. See note from mikael@ingen.reklam.staldal.nu (Mikael St嬀al), 01/01/2001 09:42 AM.
context: code, category: bug, who: SB

6) Optimize "." patterns to be ultra simple iterator.
context: code, category: performance, who: SB

7) Optimize "/foo/baz" patterns that have no variability, to a global space, and don't re-evaluate each time.
context: code, category: performance, who: SB

8) 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.
context: code, category: feature

9) 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 [issue-compiler-for-january-release]: I suspect it is unlikely this will be ready in time for this release.
context: code, category: performance

10) @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
context: test, category: feature, priority: high

11) 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.
context: test, category: tests, priority: medium

12) 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.
context: test, category: tests, priority: high

13) Delete nodes in the source tree when possible. (?? Note sure if this is do-able by beta2.) 1) For each expression, tell if expression can traverse outside it's subtree. 2) For each element, tell if any following elements may need to access that node. 3) In instructions that traverse nodes, once the processing of the node is completed, remove the node if no following elements may need to access that node. 4) Keep the parse events from getting too far ahead of the transform. TODO: In StepPattern, Ancestors tests with predicates are problematic, and will require special treatment.
context: code, category: performance, who: SB

14) XPointer built on the XPath package.
context: code, category: feature

15) Schema-savy itterators. This is hard because there is no standard API for schemas yet.
context: code, packages: xpath.axes, category: performance

16) 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?
context: code, id: stylesheet-analysis, packages: processor, category: performance

17) 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.
context: code, packages: stree, category: performance

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


Completed:

1) Update and add to architecture documentation, including package headers.
context: doc, category: documentation, who: SB, completed: 01/12/01

2) Simplify some of the exception nesting, maybe, and make sure error listeners are being called for all cases. Fixed bug with XPaths in this area. Most of the nesting is being caused by TranformerHandler to SAXException nesting, which can be unnested.
context: code, category: error-handling, who: SB, completed: 01/06/01

3) Fix 1.8 problems: extend01 (exception), numberformat 06, numberformat16, output77 (exception). JDK 1.1.8, using xml-xalan\test\ConformanceTest.bat, runharness.bat, and testthreads.bat as-is. The number format stuff is a bug in JDK 1.8 and can't easily be fixed or hacked.
context: code, category: bug, who: SB, completed: 01/06/01

4) Implement xsl:strip-space for generic DOM processing.
context: code, category: bug, who: SB, completed: 01/04/01

5) For default transformer, do direct transform without stylesheet.
context: code, category: performance, who: SB, completed: 01/03/01

6) Fix some javadoc headers that still have old XalanJ1 text. For instance, TransformerImpl.
context: code, category: documentation, who: SB, completed: 01/01/01

7) Fix bug with Shane's s2s test hang.
context: code, category: bugs, who: SB, completed: 12/31/00

8) Fix bug with rare intermittent failures, probably in the STree. Verification testing on JK's machine needed.
context: code, category: bugs, who: SB, JK, completed: 12/31/00

9) Optimize "/foo/baz" patterns to use simple child walkers.
context: code, category: performance, who: SB, completed: 12/26/00

10) 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)
context: test, who: SC, category: minitest, priority: medium, completed: 12/08/00

11) Fix remaining axes tests.
context: code, category: architecture, priority: high, who: SB, completed: 12/10/00

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

13) Restructure OutputFormat class to be based on properties. Make sure include/import conformance is correct.
context: code, category: architecture, conformance, priority: high, who: SB, completed: 12/06/00

14) Make entities in the html serializer to be resource file driven.
context: code, category: architecture, priority: high, who: SB, completed: 12/06/00

15) Removed linefeed normalization from serializers. I think.
context: code, category: architecture, priority: high, who: SB, completed: 12/06/00

16) Make this todo list.
context: code, completed-date: 10/31/00

17) implement javax.trax interfaces.
context: code, who: SB, category: trax, completed-date: 11/06/00

18) Implement DOMSerializer on SerializerToXML.
context: code, packages: serialize, who: SB, category: feature, completed-date: 11/17/00

19) implement fast iterator for "foo" pattern.
context: code, who: SB, packages: xpath.axes, category: performance, priority: high, completed-date: 11/17/00

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

21) Clean up treatment of null namespaces, re "" vs. null. 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.
context: code, category: code-cleanup, priority: medium, completed: 12/01/00

22) Implement namespace aliasing.
context: code, category: conformance, priority: high, completed: 12/10/00

23) Catch multiple definitions of a variable with the same name and scope.
context: code, packages: templates, category: conformance, priority: medium, note: done?, completed: 11/29/00

24) Move org.apache.xalan.utils package to org.apache.xml.utils. remove resource dependencies on xalan and/or xpath package.
context: code, category: code-cleanup, priority: medium, completed: 11/25/00

25) Refactored the recompose logic to operate more cleanly and quickly. Fixed TemplateList to properly order templates.
context: code, category: code-cleanup, performance, packages: templates, priority: medium, who: GP, completed: 11/30/00

26) Improved error reporting for java extension method errors.
context: code, category: code-cleanup, packages: extensions, priority: medium, who: GP, completed: 10/29/00

27) Updated documentation for Extension Handling to conform to the new extension mechanism.
context: code, category: documentation, priority: medium, who: GP, completed: 11/23/00

28) Changed extension mechanism to load extensions using the thread's ContextClassLoader, if available.
context: code, category: feature, priority: medium, who: GP, completed: 12/03/00

29) Implement tokenize extension. Implement element-available and function-available for built-in elements and functions.
context: code, category: feature, packages: extensions, priority: medium, who: GP, completed: 11/28/00

30) Fix handling of xsl:fallback elements within extension elements that process their own code (like redirect).
context: code, category: code-cleanup, packages: extensions, priority: medium, who: GP, completed: 11/07/00

31) Cleaned up compiler handling of getWhatToShow() to result in cleaner code and provide a more accurate filter.
context: code, category: code-cleanup, packages: compiler, priority: medium, who: GP, completed: 11/09/00

32) implement fast iterator for "@foo" pattern.
context: code, who: SB, packages: xpath.axes, category: performance, priority: high, completed: 12/13/00

33) implement fast iterator for "//foo" pattern.
context: code, who: SB, packages: xpath.axes, category: performance, priority: high, completed: 12/14/00

34) Rewrite the sample servlet to use the TrAX interfaces and eliminate setting system properties within the servlet.
context: code, category: code-cleanup, who: DL, packages: xalanservlet, priority: medium, completed: 12/15/00

35) 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.
context: code, who: SB, packages: org.apache.xalan.serialize, category: samples, priority: high, completed: 12/16/00

36) Fill in all NEEDSDOC sections.
context: code, category: documentation, priority: high, completed: 12/17/00

37) 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.
context: code, category: code-cleanup, who: DL, packages: xalan.client, priority: medium, completed: 12/17/00

38) 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:".
context: code, category: conformance, priority: high, completed: 12/19/00

39) 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 SC for details.
context: test, category: feature, priority: high, completed: 12/19/00


Developers:

A list of some of people currently working on working on Xalan-Java: