You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mu...@apache.org on 2023/04/14 06:24:16 UTC

[xalan-java] branch master updated: updating master branch, to have same contents as the branch xalan-j_2_7_1_maint

This is an automated email from the ASF dual-hosted git repository.

mukulg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/xalan-java.git


The following commit(s) were added to refs/heads/master by this push:
     new 356ce496 updating master branch, to have same contents as the branch xalan-j_2_7_1_maint
356ce496 is described below

commit 356ce496faa80d97ae8a8406e37f6bd994b39233
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Fri Apr 14 11:53:05 2023 +0530

    updating master branch, to have same contents as the branch xalan-j_2_7_1_maint
---
 .classpath                                         |   16 +
 .gitignore                                         |    2 +
 .project                                           |   33 +
 .settings/org.eclipse.jdt.core.prefs               |  269 +
 .settings/org.eclipse.jdt.ui.prefs                 |    5 +
 KEYS                                               |  503 ++
 LICENSE.txt                                        | 1074 ++++
 NOTICE.txt                                         |   85 +
 README                                             |  137 +
 SECURITY.md                                        |   23 +
 Xalan2.7.0-REL_PLAN.html                           |  180 +
 build.bat                                          |   70 +
 build.sh                                           |   90 +
 build.xml                                          | 1936 ++++++
 build_srcdist_xalan.xml                            | 1944 ++++++
 build_srcdist_xalan_tests.xml                      | 1783 +++++
 commits.xml                                        | 2516 ++++++++
 deprecated_build.sh                                |   73 +
 lib/bcel-6.7.0.jar                                 |  Bin 0 -> 716107 bytes
 lib/brazil-2.1.jar                                 |  Bin 0 -> 2761814 bytes
 lib/bsf.jar                                        |  Bin 0 -> 113369 bytes
 lib/commons-logging-1.2.jar                        |  Bin 0 -> 61829 bytes
 lib/endorsed/xercesImpl.jar                        |  Bin 0 -> 1446149 bytes
 lib/endorsed/xml-apis.jar                          |  Bin 0 -> 228394 bytes
 lib/javaee-api-5.0-2.jar                           |  Bin 0 -> 753070 bytes
 lib/regexp.jar                                     |  Bin 0 -> 29871 bytes
 lib/rhino-1.7.14.jar                               |  Bin 0 -> 1383644 bytes
 lib/runtime.jar                                    |  Bin 0 -> 7820 bytes
 lib/servlet-api-2.5.jar                            |  Bin 0 -> 134133 bytes
 samples/AppletXMLtoHTML/README.html                |   40 +
 samples/AppletXMLtoHTML/appletXMLtoHTML.html       |   33 +
 samples/AppletXMLtoHTML/client.html                |  138 +
 samples/AppletXMLtoHTML/foo-s1.xml                 |    6 +
 samples/AppletXMLtoHTML/lts3611beac.jpg            |    1 +
 samples/AppletXMLtoHTML/rabbitwhorn.jpg            |  Bin 0 -> 3260 bytes
 samples/AppletXMLtoHTML/s1ToHTML.xsl               |  159 +
 samples/AppletXMLtoHTML/target.html                |   24 +
 samples/AppletXMLtoHTML/trax.xml                   |  260 +
 samples/AppletXMLtoHTML/xalanApplets.xml           |   26 +
 samples/ApplyXPath/ApplyXPath.java                 |  141 +
 samples/ApplyXPath/foo.xml                         |   13 +
 samples/ApplyXPath/readme.html                     |   30 +
 samples/ApplyXPathDOM/ApplyXPathDOM.java           |  154 +
 samples/ApplyXPathDOM/foo.xml                      |   13 +
 samples/ApplyXPathDOM/readme.html                  |   30 +
 samples/CompiledApplet/README.applet               |  111 +
 samples/CompiledApplet/TransformApplet.java        |  260 +
 samples/CompiledApplet/index.html                  |   28 +
 samples/CompiledApplet/menu.html                   |   67 +
 samples/CompiledApplet/singleTransform.html        |   25 +
 samples/CompiledBrazil/README.brazil               |   55 +
 samples/CompiledBrazil/TransformHandler.java       |  154 +
 samples/CompiledEJB/README.ejb                     |  113 +
 samples/CompiledEJB/TransformBean.java             |  117 +
 samples/CompiledEJB/TransformHome.java             |   33 +
 samples/CompiledEJB/TransformRemote.java           |   33 +
 samples/CompiledEJB/TransformServlet.java          |   90 +
 samples/CompiledEJB/bottom_frame.html              |   24 +
 samples/CompiledEJB/index.html                     |   31 +
 samples/CompiledEJB/top_frame.html                 |  122 +
 samples/CompiledJAXP/Compile.java                  |   64 +
 samples/CompiledJAXP/README.cjaxp                  |   24 +
 samples/CompiledJAXP/Transform.java                |   73 +
 samples/CompiledServlet/CompileServlet.java        |   76 +
 samples/CompiledServlet/README.servlet             |   66 +
 samples/CompiledServlet/TransformServlet.java      |   99 +
 samples/DOM2DOM/DOM2DOM.java                       |  107 +
 samples/DOM2DOM/birds.xml                          |  136 +
 samples/DOM2DOM/birds.xsl                          |   57 +
 samples/DOM2DOM/readme.html                        |   30 +
 samples/Pipe/Pipe.java                             |   85 +
 samples/Pipe/foo.xml                               |    2 +
 samples/Pipe/foo1.xsl                              |   25 +
 samples/Pipe/foo2.xsl                              |   25 +
 samples/Pipe/foo3.xsl                              |   25 +
 samples/Pipe/readme.html                           |   30 +
 samples/SAX2SAX/SAX2SAX.java                       |  108 +
 samples/SAX2SAX/birds.xml                          |  136 +
 samples/SAX2SAX/birds.xsl                          |   57 +
 samples/SAX2SAX/foo.xml                            |    2 +
 samples/SAX2SAX/foo.xsl                            |   25 +
 samples/SimpleTransform/SimpleTransform.java       |   60 +
 samples/SimpleTransform/birds.xml                  |  136 +
 samples/SimpleTransform/birds.xsl                  |   57 +
 samples/SimpleTransform/foo.xml                    |    2 +
 samples/SimpleTransform/foo.xsl                    |   25 +
 samples/SimpleTransform/readme.html                |   30 +
 samples/Trace/Trace.java                           |   91 +
 samples/Trace/foo.xml                              |   67 +
 samples/Trace/foo.xsl                              |   89 +
 samples/TransformThread/TransformThread.java       |  323 +
 samples/TransformThread/foo0.xml                   |    2 +
 samples/TransformThread/foo0.xsl                   |   25 +
 samples/TransformThread/foo1.xml                   |    2 +
 samples/TransformThread/foo1.xsl                   |   25 +
 samples/UseStylesheetPI/UseStylesheetPI.java       |   55 +
 samples/UseStylesheetPI/foo.xsl                    |   26 +
 samples/UseStylesheetPI/fooX.xml                   |    3 +
 samples/UseStylesheetParam/UseStylesheetParam.java |   61 +
 samples/UseStylesheetParam/foo.xml                 |    2 +
 samples/UseStylesheetParam/foo.xsl                 |   27 +
 samples/UseStylesheetParam/readme.html             |   30 +
 samples/UseXMLFilters/UseXMLFilters.java           |  101 +
 samples/UseXMLFilters/foo.xml                      |    2 +
 samples/UseXMLFilters/foo1.xsl                     |   25 +
 samples/UseXMLFilters/foo2.xsl                     |   25 +
 samples/UseXMLFilters/foo3.xsl                     |   25 +
 samples/UseXMLFilters/readme.html                  |   30 +
 samples/Validate/Validate.java                     |  270 +
 samples/Validate/ValidateXMLInput.java             |  115 +
 samples/Validate/birds.xml                         |  145 +
 samples/Validate/birds.xsl                         |   57 +
 samples/Validate/readme.html                       |   30 +
 samples/XPathAPI/ApplyXPathJAXP.java               |  178 +
 samples/XPathAPI/ExtensionFunctionResolver.java    |   89 +
 samples/XPathAPI/ExtensionTest.java                |   25 +
 samples/XPathAPI/XPathResolver.java                |  157 +
 samples/XPathAPI/foo.xml                           |   13 +
 samples/XPathAPI/numlist.xml                       |    6 +
 samples/extensions/1-redir.xml                     |   10 +
 samples/extensions/1-redir.xsl                     |   56 +
 samples/extensions/2-basicJscript.xml              |    5 +
 samples/extensions/2-basicJscript.xsl              |   56 +
 samples/extensions/3-java-namespace.xml            |    6 +
 samples/extensions/3-java-namespace.xsl            |   41 +
 samples/extensions/4-numlistJava.xsl               |   54 +
 samples/extensions/5-numlistJscript.xsl            |   73 +
 samples/extensions/IntDate.java                    |   36 +
 samples/extensions/MyCounter.java                  |   58 +
 samples/extensions/numlist.xml                     |   18 +
 samples/extensions/readme.html                     |   30 +
 samples/extensions/sql/GETTING_STARTED.txt         |   55 +
 .../extensions/sql/basic-connection/DumpSQL.xsl    |   39 +
 samples/extensions/sql/basic-connection/dbinfo.xml |   11 +
 .../sql/basic-connection/dbtest-cinfo.xsl          |   84 +
 samples/extensions/sql/basic-connection/dbtest.xsl |  142 +
 .../extensions/sql/basic-connection/readme.html    |   30 +
 samples/extensions/sql/createdb.sql                |    8 +
 .../sql/ext-connection/ExternalConnection.java     |  105 +
 samples/extensions/sql/ext-connection/dbtest.xsl   |   78 +
 samples/extensions/sql/ext-connection/readme.html  |   30 +
 samples/extensions/sql/pquery/dbinfo.xml           |   14 +
 samples/extensions/sql/pquery/dbtest.xsl           |   88 +
 samples/extensions/sql/pquery/readme.html          |   30 +
 samples/extensions/sql/readme.html                 |   30 +
 samples/extensions/sql/runDerby.bat                |   73 +
 samples/extensions/sql/runDerby.sh                 |   58 +
 samples/extensions/sql/runExtConnection.bat        |  132 +
 samples/extensions/sql/runExtConnection.sh         |  104 +
 samples/extensions/sql/runXalan.bat                |  123 +
 samples/extensions/sql/runXalan.sh                 |   93 +
 samples/extensions/sql/show-error/dbinfo.xml       |   14 +
 samples/extensions/sql/show-error/invalidConn.xsl  |   76 +
 .../extensions/sql/show-error/invalidPQuery.xsl    |   86 +
 samples/extensions/sql/show-error/invalidQuery.xsl |   86 +
 samples/extensions/sql/show-error/readme.html      |   30 +
 samples/extensions/sql/streamable/cachedNodes.xsl  |  142 +
 samples/extensions/sql/streamable/dbinfo.xml       |   12 +
 samples/extensions/sql/streamable/pivot.xsl        |  183 +
 samples/extensions/sql/streamable/readme.html      |   30 +
 samples/extensions/sql/streamable/streamNodes.xsl  |   76 +
 samples/servlet/ApplyXSLT.java                     |  854 +++
 samples/servlet/ApplyXSLTException.java            |  175 +
 samples/servlet/ApplyXSLTListener.java             |  101 +
 samples/servlet/ApplyXSLTProperties.java           |  165 +
 samples/servlet/DefaultApplyXSLTProperties.java    |  272 +
 samples/servlet/SimpleXSLTServlet.java             |   85 +
 samples/servlet/UseStylesheetParamServlet.java     |  103 +
 samples/servlet/XSLTServletWithParams.java         |  146 +
 samples/servlet/birds.xml                          |  137 +
 samples/servlet/birds.xsl                          |   57 +
 samples/servlet/booklist1.xsl                      |   51 +
 samples/servlet/booklist2.xsl                      |   53 +
 samples/servlet/catalog.xml                        |   40 +
 samples/servlet/default.xsl                        |  294 +
 samples/servlet/default2.xsl                       |  170 +
 samples/servlet/fooparam.xml                       |    2 +
 samples/servlet/fooparam.xsl                       |   34 +
 samples/servlet/jspSample.jsp                      |   48 +
 samples/servlet/media.properties                   |   60 +
 samples/servlet/readme.html                        |   30 +
 samples/servlet/web.xml                            |   49 +
 .../JAXPTransletMultipleTransformations.java       |   88 +
 .../translets/JAXPTransletOneTransformation.java   |   81 +
 samples/translets/readme.html                      |   30 +
 samples/translets/todo.xml                         |   35 +
 samples/translets/todo.xsl                         |  178 +
 samples/translets/todotoo.xml                      |   29 +
 samples/trax/ExampleContentHandler.java            |  117 +
 samples/trax/Examples.java                         |  844 +++
 samples/trax/xml/baz.xml                           |    6 +
 samples/trax/xml/foo.xml                           |   10 +
 samples/trax/xml/subdir1/foo2.xml                  |    2 +
 samples/trax/xml/subdir1/subdir2/foo3.xml          |    2 +
 samples/trax/xsl/baz.xsl                           |   37 +
 samples/trax/xsl/foo.xsl                           |   45 +
 samples/trax/xsl/foo2.xsl                          |   33 +
 samples/trax/xsl/foo3.xsl                          |   33 +
 samples/trax/xsl/inc1/inc1.xsl                     |   24 +
 samples/trax/xsl/inc1/inc2/inc2.xsl                |   21 +
 src/MANIFEST.MF                                    |   70 +
 src/MANIFEST.SERIALIZER                            |   20 +
 .../javax.xml.transform.TransformerFactory         |    1 +
 src/META-INF/services/javax.xml.xpath.XPathFactory |    1 +
 .../org.apache.xalan.extensions.bsf.BSFManager     |    1 +
 .../services/org.apache.xml.dtm.DTMManager         |    1 +
 src/javadocOverview.html                           |   28 +
 src/manifest.xalan-interpretive                    |   29 +
 src/manifest.xsltc                                 |   51 +
 src/org/apache/xalan/Version.src                   |  153 +
 .../apache/xalan/client/XSLTProcessorApplet.java   |  780 +++
 src/org/apache/xalan/client/package.html           |   26 +
 .../apache/xalan/extensions/ExpressionContext.java |   93 +
 .../apache/xalan/extensions/ExpressionVisitor.java |   82 +
 .../apache/xalan/extensions/ExtensionHandler.java  |  147 +
 .../extensions/ExtensionHandlerExsltFunction.java  |  229 +
 .../xalan/extensions/ExtensionHandlerGeneral.java  |  397 ++
 .../xalan/extensions/ExtensionHandlerJava.java     |  100 +
 .../extensions/ExtensionHandlerJavaClass.java      |  544 ++
 .../extensions/ExtensionHandlerJavaPackage.java    |  540 ++
 .../extensions/ExtensionNamespaceContext.java      |  140 +
 .../extensions/ExtensionNamespaceSupport.java      |  106 +
 .../extensions/ExtensionNamespacesManager.java     |  286 +
 .../apache/xalan/extensions/ExtensionsTable.java   |  241 +
 .../apache/xalan/extensions/MethodResolver.java    |  994 +++
 src/org/apache/xalan/extensions/ObjectFactory.java |  656 ++
 .../apache/xalan/extensions/SecuritySupport.java   |  144 +
 .../apache/xalan/extensions/XPathFunctionImpl.java |   82 +
 .../extensions/XPathFunctionResolverImpl.java      |  118 +
 .../xalan/extensions/XSLProcessorContext.java      |  317 +
 src/org/apache/xalan/extensions/package.html       |   26 +
 src/org/apache/xalan/lib/ExsltBase.java            |   84 +
 src/org/apache/xalan/lib/ExsltCommon.java          |  106 +
 src/org/apache/xalan/lib/ExsltDatetime.java        | 1142 ++++
 src/org/apache/xalan/lib/ExsltDynamic.java         |  614 ++
 src/org/apache/xalan/lib/ExsltMath.java            |  389 ++
 src/org/apache/xalan/lib/ExsltSets.java            |  240 +
 src/org/apache/xalan/lib/ExsltStrings.java         |  353 +
 src/org/apache/xalan/lib/Extensions.java           |  418 ++
 src/org/apache/xalan/lib/NodeInfo.java             |  248 +
 src/org/apache/xalan/lib/ObjectFactory.java        |  656 ++
 src/org/apache/xalan/lib/PipeDocument.java         |  230 +
 src/org/apache/xalan/lib/Redirect.java             |  490 ++
 src/org/apache/xalan/lib/SecuritySupport.java      |  144 +
 src/org/apache/xalan/lib/package.html              |   27 +
 src/org/apache/xalan/lib/sql/ConnectionPool.java   |  157 +
 .../xalan/lib/sql/ConnectionPoolManager.java       |  125 +
 src/org/apache/xalan/lib/sql/DTMDocument.java      | 1635 +++++
 .../xalan/lib/sql/DefaultConnectionPool.java       |  578 ++
 .../apache/xalan/lib/sql/JNDIConnectionPool.java   |  337 +
 src/org/apache/xalan/lib/sql/ObjectArray.java      |  227 +
 src/org/apache/xalan/lib/sql/ObjectFactory.java    |  656 ++
 src/org/apache/xalan/lib/sql/PooledConnection.java |   92 +
 src/org/apache/xalan/lib/sql/QueryParameter.java   |  279 +
 src/org/apache/xalan/lib/sql/SQLDocument.java      | 1093 ++++
 src/org/apache/xalan/lib/sql/SQLErrorDocument.java |  244 +
 src/org/apache/xalan/lib/sql/SQLQueryParser.java   |  442 ++
 src/org/apache/xalan/lib/sql/SecuritySupport.java  |  144 +
 src/org/apache/xalan/lib/sql/XConnection.java      | 1413 ++++
 src/org/apache/xalan/lib/sql/package.html          |   91 +
 .../xalan/processor/ProcessorAttributeSet.java     |  105 +
 .../xalan/processor/ProcessorCharacters.java       |  179 +
 .../xalan/processor/ProcessorDecimalFormat.java    |   75 +
 .../xalan/processor/ProcessorExsltFuncResult.java  |   70 +
 .../xalan/processor/ProcessorExsltFunction.java    |  189 +
 .../xalan/processor/ProcessorGlobalParamDecl.java  |   77 +
 .../processor/ProcessorGlobalVariableDecl.java     |   77 +
 .../apache/xalan/processor/ProcessorImport.java    |   56 +
 .../apache/xalan/processor/ProcessorInclude.java   |  396 ++
 src/org/apache/xalan/processor/ProcessorKey.java   |  156 +
 src/org/apache/xalan/processor/ProcessorLRE.java   |  369 ++
 .../xalan/processor/ProcessorNamespaceAlias.java   |   97 +
 .../xalan/processor/ProcessorOutputElem.java       |  223 +
 .../xalan/processor/ProcessorPreserveSpace.java    |   78 +
 .../xalan/processor/ProcessorStripSpace.java       |   78 +
 .../xalan/processor/ProcessorStylesheetDoc.java    |   31 +
 .../processor/ProcessorStylesheetElement.java      |  147 +
 .../apache/xalan/processor/ProcessorTemplate.java  |   53 +
 .../xalan/processor/ProcessorTemplateElem.java     |  126 +
 src/org/apache/xalan/processor/ProcessorText.java  |   82 +
 .../apache/xalan/processor/ProcessorUnknown.java   |   34 +
 .../apache/xalan/processor/StylesheetHandler.java  | 1724 +++++
 .../xalan/processor/TransformerFactoryImpl.java    | 1038 +++
 .../xalan/processor/WhitespaceInfoPaths.java       |   82 +
 .../apache/xalan/processor/XSLProcessorVersion.src |  116 +
 .../apache/xalan/processor/XSLTAttributeDef.java   | 1665 +++++
 src/org/apache/xalan/processor/XSLTElementDef.java |  833 +++
 .../xalan/processor/XSLTElementProcessor.java      |  396 ++
 src/org/apache/xalan/processor/XSLTSchema.java     |  922 +++
 src/org/apache/xalan/processor/package.html        |   41 +
 src/org/apache/xalan/res/XSLMessages.java          |   87 +
 src/org/apache/xalan/res/XSLTErrorResources.java   | 1511 +++++
 .../apache/xalan/res/XSLTErrorResources_ca.java    | 1529 +++++
 .../apache/xalan/res/XSLTErrorResources_cs.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_de.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_en.java    |   31 +
 .../apache/xalan/res/XSLTErrorResources_es.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_fr.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_hu.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_it.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_ja.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_ko.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_pl.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_pt_BR.java | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_ru.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_sk.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_sl.java    | 1517 +++++
 .../apache/xalan/res/XSLTErrorResources_sv.java    | 2339 +++++++
 .../apache/xalan/res/XSLTErrorResources_tr.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_zh.java    | 1530 +++++
 .../apache/xalan/res/XSLTErrorResources_zh_CN.java |   22 +
 .../apache/xalan/res/XSLTErrorResources_zh_TW.java | 1530 +++++
 src/org/apache/xalan/res/XSLTInfo.properties       |   30 +
 src/org/apache/xalan/res/package.html              |   26 +
 src/org/apache/xalan/serialize/DOMSerializer.java  |   30 +
 src/org/apache/xalan/serialize/Serializer.java     |  142 +
 .../apache/xalan/serialize/SerializerFactory.java  |  159 +
 .../apache/xalan/serialize/SerializerUtils.java    |  273 +
 src/org/apache/xalan/templates/AVT.java            |  614 ++
 src/org/apache/xalan/templates/AVTPart.java        |   94 +
 src/org/apache/xalan/templates/AVTPartSimple.java  |  100 +
 src/org/apache/xalan/templates/AVTPartXPath.java   |  150 +
 src/org/apache/xalan/templates/AbsPathChecker.java |   81 +
 src/org/apache/xalan/templates/Constants.java      |  399 ++
 .../xalan/templates/DecimalFormatProperties.java   |  404 ++
 .../apache/xalan/templates/ElemApplyImport.java    |  117 +
 .../apache/xalan/templates/ElemApplyTemplates.java |  454 ++
 src/org/apache/xalan/templates/ElemAttribute.java  |  276 +
 .../apache/xalan/templates/ElemAttributeSet.java   |  181 +
 .../apache/xalan/templates/ElemCallTemplate.java   |  374 ++
 src/org/apache/xalan/templates/ElemChoose.java     |  198 +
 src/org/apache/xalan/templates/ElemComment.java    |  150 +
 src/org/apache/xalan/templates/ElemCopy.java       |  147 +
 src/org/apache/xalan/templates/ElemCopyOf.java     |  251 +
 src/org/apache/xalan/templates/ElemElement.java    |  378 ++
 src/org/apache/xalan/templates/ElemEmpty.java      |   38 +
 .../xalan/templates/ElemExsltFuncResult.java       |  101 +
 .../apache/xalan/templates/ElemExsltFunction.java  |  151 +
 .../apache/xalan/templates/ElemExtensionCall.java  |  319 +
 .../apache/xalan/templates/ElemExtensionDecl.java  |  369 ++
 .../xalan/templates/ElemExtensionScript.java       |  103 +
 src/org/apache/xalan/templates/ElemFallback.java   |  115 +
 src/org/apache/xalan/templates/ElemForEach.java    |  549 ++
 src/org/apache/xalan/templates/ElemIf.java         |  178 +
 .../apache/xalan/templates/ElemLiteralResult.java  | 1490 +++++
 src/org/apache/xalan/templates/ElemMessage.java    |  130 +
 src/org/apache/xalan/templates/ElemNumber.java     | 2168 +++++++
 src/org/apache/xalan/templates/ElemOtherwise.java  |   57 +
 src/org/apache/xalan/templates/ElemPI.java         |  230 +
 src/org/apache/xalan/templates/ElemParam.java      |  130 +
 src/org/apache/xalan/templates/ElemSort.java       |  349 +
 src/org/apache/xalan/templates/ElemTemplate.java   |  421 ++
 .../xalan/templates/ElemTemplateElement.java       | 1660 +++++
 src/org/apache/xalan/templates/ElemText.java       |  148 +
 .../apache/xalan/templates/ElemTextLiteral.java    |  245 +
 src/org/apache/xalan/templates/ElemUnknown.java    |  128 +
 src/org/apache/xalan/templates/ElemUse.java        |  205 +
 src/org/apache/xalan/templates/ElemValueOf.java    |  335 +
 src/org/apache/xalan/templates/ElemVariable.java   |  538 ++
 .../apache/xalan/templates/ElemVariablePsuedo.java |   68 +
 src/org/apache/xalan/templates/ElemWhen.java       |  126 +
 src/org/apache/xalan/templates/ElemWithParam.java  |  265 +
 src/org/apache/xalan/templates/FuncDocument.java   |  463 ++
 src/org/apache/xalan/templates/FuncFormatNumb.java |  188 +
 src/org/apache/xalan/templates/FuncKey.java        |  151 +
 src/org/apache/xalan/templates/KeyDeclaration.java |  198 +
 src/org/apache/xalan/templates/NamespaceAlias.java |  159 +
 .../apache/xalan/templates/OutputProperties.java   |  689 ++
 .../xalan/templates/RedundentExprEliminator.java   | 1432 +++++
 src/org/apache/xalan/templates/Stylesheet.java     | 1516 +++++
 .../apache/xalan/templates/StylesheetComposed.java |  349 +
 src/org/apache/xalan/templates/StylesheetRoot.java | 1405 ++++
 src/org/apache/xalan/templates/TemplateList.java   |  923 +++
 .../templates/TemplateSubPatternAssociation.java   |  249 +
 .../apache/xalan/templates/VarNameCollector.java   |   80 +
 src/org/apache/xalan/templates/WhiteSpaceInfo.java |   87 +
 src/org/apache/xalan/templates/XMLNSDecl.java      |   87 +
 src/org/apache/xalan/templates/XSLTVisitable.java  |   40 +
 src/org/apache/xalan/templates/XSLTVisitor.java    |  126 +
 .../xalan/templates/XUnresolvedVariable.java       |  187 +
 .../xalan/templates/XUnresolvedVariableSimple.java |   84 +
 src/org/apache/xalan/templates/package.html        |   44 +
 src/org/apache/xalan/trace/EndSelectionEvent.java  |   56 +
 src/org/apache/xalan/trace/ExtensionEvent.java     |   70 +
 src/org/apache/xalan/trace/GenerateEvent.java      |  166 +
 src/org/apache/xalan/trace/PrintTraceListener.java |  400 ++
 src/org/apache/xalan/trace/SelectionEvent.java     |   90 +
 src/org/apache/xalan/trace/TraceListener.java      |   58 +
 src/org/apache/xalan/trace/TraceListenerEx.java    |   40 +
 src/org/apache/xalan/trace/TraceListenerEx2.java   |   36 +
 src/org/apache/xalan/trace/TraceListenerEx3.java   |   47 +
 src/org/apache/xalan/trace/TraceManager.java       |  427 ++
 src/org/apache/xalan/trace/TracerEvent.java        |  167 +
 src/org/apache/xalan/trace/package.html            |   26 +
 .../xalan/transformer/ClonerToResultTree.java      |  212 +
 src/org/apache/xalan/transformer/Counter.java      |  157 +
 .../apache/xalan/transformer/CountersTable.java    |  208 +
 .../apache/xalan/transformer/DecimalToRoman.java   |   62 +
 src/org/apache/xalan/transformer/KeyIterator.java  |  153 +
 src/org/apache/xalan/transformer/KeyManager.java   |  115 +
 .../apache/xalan/transformer/KeyRefIterator.java   |  170 +
 src/org/apache/xalan/transformer/KeyTable.java     |  260 +
 src/org/apache/xalan/transformer/MsgMgr.java       |  315 +
 src/org/apache/xalan/transformer/NodeSortKey.java  |  129 +
 src/org/apache/xalan/transformer/NodeSorter.java   |  557 ++
 .../xalan/transformer/NumeratorFormatter.java      |  341 +
 src/org/apache/xalan/transformer/QueuedEvents.java |  168 +
 .../apache/xalan/transformer/ResultNameSpace.java  |   53 +
 .../xalan/transformer/SerializerSwitcher.java      |  205 +
 src/org/apache/xalan/transformer/StackGuard.java   |  178 +
 src/org/apache/xalan/transformer/TrAXFilter.java   |  235 +
 .../xalan/transformer/TransformSnapshot.java       |   33 +
 .../xalan/transformer/TransformSnapshotImpl.java   |  249 +
 .../apache/xalan/transformer/TransformState.java   |  128 +
 .../xalan/transformer/TransformerClient.java       |   43 +
 .../xalan/transformer/TransformerHandlerImpl.java  | 1080 ++++
 .../xalan/transformer/TransformerIdentityImpl.java | 1528 +++++
 .../apache/xalan/transformer/TransformerImpl.java  | 3687 +++++++++++
 .../xalan/transformer/TreeWalker2Result.java       |  155 +
 .../transformer/XSLInfiniteLoopException.java      |   49 +
 .../apache/xalan/transformer/XalanProperties.java  |   35 +
 .../xalan/transformer/XalanTransformState.java     |  148 +
 src/org/apache/xalan/transformer/package.html      |   39 +
 src/org/apache/xalan/xslt/EnvironmentCheck.java    | 1296 ++++
 src/org/apache/xalan/xslt/ObjectFactory.java       |  656 ++
 src/org/apache/xalan/xslt/Process.java             | 1194 ++++
 src/org/apache/xalan/xslt/SecuritySupport.java     |  144 +
 src/org/apache/xalan/xslt/package.html             |   26 +
 .../xslt/util/XslTransformErrorLocatorHelper.java  |   27 +
 src/org/apache/xalan/xsltc/CollatorFactory.java    |   35 +
 src/org/apache/xalan/xsltc/DOM.java                |  105 +
 src/org/apache/xalan/xsltc/DOMCache.java           |   56 +
 src/org/apache/xalan/xsltc/DOMEnhancedForDTM.java  |   45 +
 src/org/apache/xalan/xsltc/NodeIterator.java       |   84 +
 src/org/apache/xalan/xsltc/ProcessorVersion.java   |   49 +
 src/org/apache/xalan/xsltc/StripFilter.java        |   31 +
 src/org/apache/xalan/xsltc/Translet.java           |   52 +
 src/org/apache/xalan/xsltc/TransletException.java  |   45 +
 src/org/apache/xalan/xsltc/cmdline/Compile.java    |  153 +
 .../apache/xalan/xsltc/cmdline/ObjectFactory.java  |  656 ++
 .../xalan/xsltc/cmdline/SecuritySupport.java       |  144 +
 src/org/apache/xalan/xsltc/cmdline/Transform.java  |  295 +
 .../apache/xalan/xsltc/cmdline/getopt/GetOpt.java  |  254 +
 .../xsltc/cmdline/getopt/GetOptsException.java     |   32 +
 .../cmdline/getopt/IllegalArgumentException.java   |   30 +
 .../cmdline/getopt/MissingOptArgException.java     |   33 +
 .../xalan/xsltc/compiler/AbsoluteLocationPath.java |  128 +
 .../xalan/xsltc/compiler/AbsolutePathPattern.java  |  140 +
 .../xalan/xsltc/compiler/AlternativePattern.java   |  100 +
 .../xalan/xsltc/compiler/AncestorPattern.java      |  182 +
 .../apache/xalan/xsltc/compiler/ApplyImports.java  |  152 +
 .../xalan/xsltc/compiler/ApplyTemplates.java       |  202 +
 .../apache/xalan/xsltc/compiler/ArgumentList.java  |   42 +
 src/org/apache/xalan/xsltc/compiler/Attribute.java |   45 +
 .../apache/xalan/xsltc/compiler/AttributeSet.java  |  206 +
 .../xalan/xsltc/compiler/AttributeValue.java       |   48 +
 .../xsltc/compiler/AttributeValueTemplate.java     |  261 +
 src/org/apache/xalan/xsltc/compiler/BinOpExpr.java |  130 +
 .../apache/xalan/xsltc/compiler/BooleanCall.java   |   57 +
 .../apache/xalan/xsltc/compiler/BooleanExpr.java   |   79 +
 .../apache/xalan/xsltc/compiler/CallTemplate.java  |  238 +
 src/org/apache/xalan/xsltc/compiler/CastCall.java  |  100 +
 src/org/apache/xalan/xsltc/compiler/CastExpr.java  |  237 +
 .../apache/xalan/xsltc/compiler/CeilingCall.java   |   48 +
 src/org/apache/xalan/xsltc/compiler/Choose.java    |  168 +
 src/org/apache/xalan/xsltc/compiler/Closure.java   |   50 +
 src/org/apache/xalan/xsltc/compiler/Comment.java   |  116 +
 .../xalan/xsltc/compiler/CompilerException.java    |   54 +
 .../apache/xalan/xsltc/compiler/ConcatCall.java    |   95 +
 src/org/apache/xalan/xsltc/compiler/Constants.java |  537 ++
 .../apache/xalan/xsltc/compiler/ContainsCall.java  |  107 +
 src/org/apache/xalan/xsltc/compiler/Copy.java      |  151 +
 src/org/apache/xalan/xsltc/compiler/CopyOf.java    |  141 +
 .../apache/xalan/xsltc/compiler/CurrentCall.java   |   39 +
 .../xalan/xsltc/compiler/DecimalFormatting.java    |  256 +
 .../apache/xalan/xsltc/compiler/DocumentCall.java  |  155 +
 .../xalan/xsltc/compiler/ElementAvailableCall.java |   93 +
 .../apache/xalan/xsltc/compiler/EqualityExpr.java  |  359 ++
 .../apache/xalan/xsltc/compiler/Expression.java    |  222 +
 src/org/apache/xalan/xsltc/compiler/Fallback.java  |   79 +
 .../apache/xalan/xsltc/compiler/FilterExpr.java    |  246 +
 .../xalan/xsltc/compiler/FilterParentPath.java     |  174 +
 .../compiler/FilteredAbsoluteLocationPath.java     |  125 +
 src/org/apache/xalan/xsltc/compiler/FloorCall.java |   46 +
 src/org/apache/xalan/xsltc/compiler/FlowList.java  |  117 +
 src/org/apache/xalan/xsltc/compiler/ForEach.java   |  196 +
 .../xalan/xsltc/compiler/FormatNumberCall.java     |  114 +
 .../xsltc/compiler/FunctionAvailableCall.java      |  193 +
 .../apache/xalan/xsltc/compiler/FunctionCall.java  | 1093 ++++
 .../xalan/xsltc/compiler/GenerateIdCall.java       |   55 +
 .../apache/xalan/xsltc/compiler/IdKeyPattern.java  |  127 +
 src/org/apache/xalan/xsltc/compiler/IdPattern.java |   35 +
 src/org/apache/xalan/xsltc/compiler/If.java        |  110 +
 .../xalan/xsltc/compiler/IllegalCharException.java |   33 +
 src/org/apache/xalan/xsltc/compiler/Import.java    |  148 +
 src/org/apache/xalan/xsltc/compiler/Include.java   |  147 +
 .../apache/xalan/xsltc/compiler/Instruction.java   |   50 +
 src/org/apache/xalan/xsltc/compiler/IntExpr.java   |   56 +
 src/org/apache/xalan/xsltc/compiler/Key.java       |  299 +
 src/org/apache/xalan/xsltc/compiler/KeyCall.java   |  224 +
 .../apache/xalan/xsltc/compiler/KeyPattern.java    |   34 +
 src/org/apache/xalan/xsltc/compiler/LangCall.java  |   91 +
 src/org/apache/xalan/xsltc/compiler/LastCall.java  |   69 +
 .../xalan/xsltc/compiler/LiteralAttribute.java     |  157 +
 .../xalan/xsltc/compiler/LiteralElement.java       |  547 ++
 .../apache/xalan/xsltc/compiler/LiteralExpr.java   |   85 +
 .../apache/xalan/xsltc/compiler/LocalNameCall.java |   74 +
 .../xalan/xsltc/compiler/LocationPathPattern.java  |  107 +
 .../apache/xalan/xsltc/compiler/LogicalExpr.java   |  233 +
 src/org/apache/xalan/xsltc/compiler/Makefile.inc   |   58 +
 src/org/apache/xalan/xsltc/compiler/Message.java   |  167 +
 src/org/apache/xalan/xsltc/compiler/Mode.java      | 1513 +++++
 src/org/apache/xalan/xsltc/compiler/NameBase.java  |  128 +
 src/org/apache/xalan/xsltc/compiler/NameCall.java  |   66 +
 .../xalan/xsltc/compiler/NamespaceAlias.java       |   55 +
 .../xalan/xsltc/compiler/NamespaceUriCall.java     |   67 +
 src/org/apache/xalan/xsltc/compiler/NodeTest.java  |   43 +
 src/org/apache/xalan/xsltc/compiler/NotCall.java   |   58 +
 src/org/apache/xalan/xsltc/compiler/Number.java    |  592 ++
 .../apache/xalan/xsltc/compiler/NumberCall.java    |   68 +
 .../apache/xalan/xsltc/compiler/ObjectFactory.java |  656 ++
 src/org/apache/xalan/xsltc/compiler/Otherwise.java |   53 +
 src/org/apache/xalan/xsltc/compiler/Output.java    |  419 ++
 src/org/apache/xalan/xsltc/compiler/Param.java     |  254 +
 .../apache/xalan/xsltc/compiler/ParameterRef.java  |  109 +
 .../xalan/xsltc/compiler/ParentLocationPath.java   |  244 +
 .../apache/xalan/xsltc/compiler/ParentPattern.java |  150 +
 src/org/apache/xalan/xsltc/compiler/Parser.java    | 1401 ++++
 src/org/apache/xalan/xsltc/compiler/Pattern.java   |   60 +
 .../apache/xalan/xsltc/compiler/PositionCall.java  |   67 +
 src/org/apache/xalan/xsltc/compiler/Predicate.java |  617 ++
 .../xsltc/compiler/ProcessingInstruction.java      |  140 +
 .../compiler/ProcessingInstructionPattern.java     |  158 +
 src/org/apache/xalan/xsltc/compiler/QName.java     |   85 +
 src/org/apache/xalan/xsltc/compiler/RealExpr.java  |   56 +
 .../xalan/xsltc/compiler/RelationalExpr.java       |  281 +
 .../xalan/xsltc/compiler/RelativeLocationPath.java |   31 +
 .../xalan/xsltc/compiler/RelativePathPattern.java  |   28 +
 src/org/apache/xalan/xsltc/compiler/RoundCall.java |   51 +
 .../xalan/xsltc/compiler/SecuritySupport.java      |  144 +
 .../xalan/xsltc/compiler/SimpleAttributeValue.java |   75 +
 src/org/apache/xalan/xsltc/compiler/Sort.java      |  738 +++
 .../apache/xalan/xsltc/compiler/SourceLoader.java  |   42 +
 .../xalan/xsltc/compiler/StartsWithCall.java       |   91 +
 src/org/apache/xalan/xsltc/compiler/Step.java      |  521 ++
 .../apache/xalan/xsltc/compiler/StepPattern.java   |  532 ++
 .../apache/xalan/xsltc/compiler/StringCall.java    |   74 +
 .../xalan/xsltc/compiler/StringLengthCall.java     |   55 +
 .../apache/xalan/xsltc/compiler/Stylesheet.java    | 1561 +++++
 .../apache/xalan/xsltc/compiler/SymbolTable.java   |  295 +
 .../xalan/xsltc/compiler/SyntaxTreeNode.java       |  942 +++
 src/org/apache/xalan/xsltc/compiler/Template.java  |  340 +
 src/org/apache/xalan/xsltc/compiler/TestSeq.java   |  287 +
 src/org/apache/xalan/xsltc/compiler/Text.java      |  245 +
 .../xalan/xsltc/compiler/TopLevelElement.java      |   98 +
 .../xalan/xsltc/compiler/TransletOutput.java       |  147 +
 .../apache/xalan/xsltc/compiler/UnaryOpExpr.java   |   89 +
 .../apache/xalan/xsltc/compiler/UnionPathExpr.java |  146 +
 .../xsltc/compiler/UnparsedEntityUriCall.java      |   70 +
 .../apache/xalan/xsltc/compiler/UnresolvedRef.java |  102 +
 .../xalan/xsltc/compiler/UnsupportedElement.java   |  150 +
 .../xalan/xsltc/compiler/UseAttributeSets.java     |  115 +
 src/org/apache/xalan/xsltc/compiler/ValueOf.java   |  138 +
 src/org/apache/xalan/xsltc/compiler/Variable.java  |  200 +
 .../apache/xalan/xsltc/compiler/VariableBase.java  |  272 +
 .../apache/xalan/xsltc/compiler/VariableRef.java   |   95 +
 .../xalan/xsltc/compiler/VariableRefBase.java      |  158 +
 src/org/apache/xalan/xsltc/compiler/When.java      |  105 +
 .../apache/xalan/xsltc/compiler/Whitespace.java    |  531 ++
 src/org/apache/xalan/xsltc/compiler/WithParam.java |  209 +
 src/org/apache/xalan/xsltc/compiler/XSLTC.java     | 1006 +++
 .../apache/xalan/xsltc/compiler/XslAttribute.java  |  293 +
 .../apache/xalan/xsltc/compiler/XslElement.java    |  323 +
 .../compiler/util/AttributeSetMethodGenerator.java |   99 +
 .../xalan/xsltc/compiler/util/BooleanType.java     |  223 +
 .../xalan/xsltc/compiler/util/ClassGenerator.java  |  142 +
 .../xsltc/compiler/util/CompareGenerator.java      |  118 +
 .../xalan/xsltc/compiler/util/ErrorMessages.java   | 1004 +++
 .../xsltc/compiler/util/ErrorMessages_ca.java      |  912 +++
 .../xsltc/compiler/util/ErrorMessages_cs.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_de.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_es.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_fr.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_hu.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_it.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_ja.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_ko.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_no.java      |  222 +
 .../xsltc/compiler/util/ErrorMessages_pl.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_pt_BR.java   |  913 +++
 .../xsltc/compiler/util/ErrorMessages_ru.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_sk.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_sl.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_tr.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_zh.java      |  913 +++
 .../xsltc/compiler/util/ErrorMessages_zh_TW.java   |  913 +++
 .../apache/xalan/xsltc/compiler/util/ErrorMsg.java |  317 +
 .../xalan/xsltc/compiler/util/FilterGenerator.java |   64 +
 .../apache/xalan/xsltc/compiler/util/IntType.java  |  300 +
 .../xalan/xsltc/compiler/util/InternalError.java   |   36 +
 .../xsltc/compiler/util/MarkerInstruction.java     |   97 +
 .../xalan/xsltc/compiler/util/MatchGenerator.java  |  102 +
 .../xalan/xsltc/compiler/util/MethodGenerator.java | 2147 +++++++
 .../xalan/xsltc/compiler/util/MethodType.java      |  171 +
 .../xalan/xsltc/compiler/util/MultiHashtable.java  |   55 +
 .../xsltc/compiler/util/NamedMethodGenerator.java  |   65 +
 .../xsltc/compiler/util/NodeCounterGenerator.java  |   73 +
 .../xalan/xsltc/compiler/util/NodeSetType.java     |  329 +
 .../compiler/util/NodeSortRecordFactGenerator.java |   47 +
 .../compiler/util/NodeSortRecordGenerator.java     |   63 +
 .../apache/xalan/xsltc/compiler/util/NodeType.java |  323 +
 .../xalan/xsltc/compiler/util/NumberType.java      |   38 +
 .../xalan/xsltc/compiler/util/ObjectFactory.java   |  656 ++
 .../xalan/xsltc/compiler/util/ObjectType.java      |  177 +
 .../xsltc/compiler/util/OutlineableChunkEnd.java   |   70 +
 .../xsltc/compiler/util/OutlineableChunkStart.java |   79 +
 .../apache/xalan/xsltc/compiler/util/RealType.java |  342 +
 .../xalan/xsltc/compiler/util/ReferenceType.java   |  378 ++
 .../xalan/xsltc/compiler/util/ResultTreeType.java  |  463 ++
 .../xsltc/compiler/util/RtMethodGenerator.java     |   68 +
 .../xalan/xsltc/compiler/util/SecuritySupport.java |  144 +
 .../xalan/xsltc/compiler/util/SlotAllocator.java   |  100 +
 .../xalan/xsltc/compiler/util/StringStack.java     |   43 +
 .../xalan/xsltc/compiler/util/StringType.java      |  226 +
 .../xalan/xsltc/compiler/util/TestGenerator.java   |  115 +
 src/org/apache/xalan/xsltc/compiler/util/Type.java |  291 +
 .../xalan/xsltc/compiler/util/TypeCheckError.java  |   77 +
 src/org/apache/xalan/xsltc/compiler/util/Util.java |  202 +
 .../apache/xalan/xsltc/compiler/util/VoidType.java |   98 +
 src/org/apache/xalan/xsltc/compiler/xpath.cup      | 1113 ++++
 src/org/apache/xalan/xsltc/compiler/xpath.lex      |  257 +
 .../apache/xalan/xsltc/dom/AbsoluteIterator.java   |   99 +
 .../xalan/xsltc/dom/AdaptiveResultTreeImpl.java    | 1320 ++++
 src/org/apache/xalan/xsltc/dom/AnyNodeCounter.java |  122 +
 .../xalan/xsltc/dom/ArrayNodeListIterator.java     |   89 +
 src/org/apache/xalan/xsltc/dom/BitArray.java       |  266 +
 .../xalan/xsltc/dom/CachedNodeListIterator.java    |  113 +
 .../xalan/xsltc/dom/ClonedNodeListIterator.java    |   81 +
 .../xalan/xsltc/dom/CollatorFactoryBase.java       |   50 +
 .../xalan/xsltc/dom/CurrentNodeListFilter.java     |   35 +
 .../xalan/xsltc/dom/CurrentNodeListIterator.java   |  199 +
 src/org/apache/xalan/xsltc/dom/DOMAdapter.java     |  466 ++
 src/org/apache/xalan/xsltc/dom/DOMBuilder.java     |   27 +
 src/org/apache/xalan/xsltc/dom/DOMWSFilter.java    |  130 +
 src/org/apache/xalan/xsltc/dom/DocumentCache.java  |  339 +
 .../apache/xalan/xsltc/dom/DupFilterIterator.java  |  165 +
 src/org/apache/xalan/xsltc/dom/EmptyFilter.java    |   32 +
 src/org/apache/xalan/xsltc/dom/ExtendedSAX.java    |   34 +
 src/org/apache/xalan/xsltc/dom/Filter.java         |   30 +
 src/org/apache/xalan/xsltc/dom/FilterIterator.java |  118 +
 .../xalan/xsltc/dom/FilteredStepIterator.java      |   54 +
 .../xalan/xsltc/dom/ForwardPositionIterator.java   |  107 +
 src/org/apache/xalan/xsltc/dom/KeyIndex.java       |  892 +++
 src/org/apache/xalan/xsltc/dom/LoadDocument.java   |  289 +
 .../apache/xalan/xsltc/dom/MatchingIterator.java   |  127 +
 src/org/apache/xalan/xsltc/dom/MultiDOM.java       |  665 ++
 .../xsltc/dom/MultiValuedNodeHeapIterator.java     |  294 +
 .../xalan/xsltc/dom/MultipleNodeCounter.java       |  111 +
 src/org/apache/xalan/xsltc/dom/NodeCounter.java    |  350 +
 .../apache/xalan/xsltc/dom/NodeIteratorBase.java   |  170 +
 src/org/apache/xalan/xsltc/dom/NodeSortRecord.java |  243 +
 .../xalan/xsltc/dom/NodeSortRecordFactory.java     |  164 +
 src/org/apache/xalan/xsltc/dom/NthIterator.java    |  115 +
 src/org/apache/xalan/xsltc/dom/ObjectFactory.java  |  656 ++
 src/org/apache/xalan/xsltc/dom/SAXImpl.java        | 1903 ++++++
 .../apache/xalan/xsltc/dom/SecuritySupport.java    |  144 +
 .../xalan/xsltc/dom/SimpleResultTreeImpl.java      | 1018 +++
 .../apache/xalan/xsltc/dom/SingleNodeCounter.java  |  133 +
 .../apache/xalan/xsltc/dom/SingletonIterator.java  |   92 +
 src/org/apache/xalan/xsltc/dom/SortSettings.java   |  138 +
 .../apache/xalan/xsltc/dom/SortingIterator.java    |  149 +
 src/org/apache/xalan/xsltc/dom/StepIterator.java   |  138 +
 .../xalan/xsltc/dom/StripWhitespaceFilter.java     |   32 +
 src/org/apache/xalan/xsltc/dom/UnionIterator.java  |   98 +
 .../apache/xalan/xsltc/dom/XSLTCDTMManager.java    |  416 ++
 .../xsltc/javax.xml.transform.TransformerFactory   |    1 +
 .../xalan/xsltc/runtime/AbstractTranslet.java      |  754 +++
 .../apache/xalan/xsltc/runtime/AttributeList.java  |  228 +
 src/org/apache/xalan/xsltc/runtime/Attributes.java |   63 +
 .../apache/xalan/xsltc/runtime/BasisLibrary.java   | 1731 +++++
 src/org/apache/xalan/xsltc/runtime/Constants.java  |   51 +
 .../apache/xalan/xsltc/runtime/ErrorMessages.java  |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_ca.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_cs.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_de.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_es.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_fr.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_hu.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_it.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_ja.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_ko.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_no.java      |   85 +
 .../xalan/xsltc/runtime/ErrorMessages_pl.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_pt_BR.java   |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_ru.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_sk.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_sl.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_tr.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_zh.java      |  285 +
 .../xalan/xsltc/runtime/ErrorMessages_zh_TW.java   |  285 +
 src/org/apache/xalan/xsltc/runtime/Hashtable.java  |  343 +
 .../xalan/xsltc/runtime/InternalRuntimeError.java  |   34 +
 .../apache/xalan/xsltc/runtime/MessageHandler.java |   31 +
 src/org/apache/xalan/xsltc/runtime/Node.java       |   38 +
 .../apache/xalan/xsltc/runtime/ObjectFactory.java  |  656 ++
 src/org/apache/xalan/xsltc/runtime/Operators.java  |   58 +
 src/org/apache/xalan/xsltc/runtime/Parameter.java  |   46 +
 .../xalan/xsltc/runtime/SecuritySupport.java       |  144 +
 .../xalan/xsltc/runtime/StringValueHandler.java    |  125 +
 .../xalan/xsltc/runtime/output/OutputBuffer.java   |   36 +
 .../xsltc/runtime/output/StringOutputBuffer.java   |   54 +
 .../output/TransletOutputHandlerFactory.java       |  189 +
 .../xsltc/runtime/output/WriterOutputBuffer.java   |   96 +
 src/org/apache/xalan/xsltc/trax/DOM2SAX.java       |  474 ++
 src/org/apache/xalan/xsltc/trax/DOM2TO.java        |  393 ++
 src/org/apache/xalan/xsltc/trax/ObjectFactory.java |  656 ++
 .../apache/xalan/xsltc/trax/OutputSettings.java    |   47 +
 src/org/apache/xalan/xsltc/trax/SAX2DOM.java       |  249 +
 .../apache/xalan/xsltc/trax/SecuritySupport.java   |  144 +
 .../xsltc/trax/SmartTransformerFactoryImpl.java    |  452 ++
 .../xalan/xsltc/trax/TemplatesHandlerImpl.java     |  343 +
 src/org/apache/xalan/xsltc/trax/TemplatesImpl.java |  410 ++
 src/org/apache/xalan/xsltc/trax/TrAXFilter.java    |  144 +
 .../xalan/xsltc/trax/TransformerFactoryImpl.java   | 1413 ++++
 .../xalan/xsltc/trax/TransformerHandlerImpl.java   |  470 ++
 .../apache/xalan/xsltc/trax/TransformerImpl.java   | 1277 ++++
 src/org/apache/xalan/xsltc/trax/Util.java          |  195 +
 src/org/apache/xalan/xsltc/trax/XSLTCSource.java   |  140 +
 src/org/apache/xalan/xsltc/util/IntegerArray.java  |  226 +
 .../apache/xalan/xsltc/util/JavaCupRedirect.java   |   97 +
 src/org/apache/xml/dtm/Axis.java                   |  220 +
 src/org/apache/xml/dtm/DTM.java                    |  967 +++
 src/org/apache/xml/dtm/DTMAxisIterator.java        |  110 +
 src/org/apache/xml/dtm/DTMAxisTraverser.java       |  116 +
 .../apache/xml/dtm/DTMConfigurationException.java  |   99 +
 src/org/apache/xml/dtm/DTMDOMException.java        |   54 +
 src/org/apache/xml/dtm/DTMException.java           |  383 ++
 src/org/apache/xml/dtm/DTMFilter.java              |  188 +
 src/org/apache/xml/dtm/DTMIterator.java            |  344 +
 src/org/apache/xml/dtm/DTMManager.java             |  430 ++
 src/org/apache/xml/dtm/DTMWSFilter.java            |   56 +
 src/org/apache/xml/dtm/ObjectFactory.java          |  656 ++
 src/org/apache/xml/dtm/SecuritySupport.java        |  144 +
 src/org/apache/xml/dtm/ref/ChunkedIntArray.java    |  306 +
 src/org/apache/xml/dtm/ref/CoroutineManager.java   |  344 +
 src/org/apache/xml/dtm/ref/CoroutineParser.java    |  140 +
 src/org/apache/xml/dtm/ref/CustomStringPool.java   |   94 +
 .../apache/xml/dtm/ref/DTMAxisIterNodeList.java    |  142 +
 .../apache/xml/dtm/ref/DTMAxisIteratorBase.java    |  281 +
 .../apache/xml/dtm/ref/DTMChildIterNodeList.java   |  119 +
 src/org/apache/xml/dtm/ref/DTMDefaultBase.java     | 2371 +++++++
 .../xml/dtm/ref/DTMDefaultBaseIterators.java       | 2193 +++++++
 .../xml/dtm/ref/DTMDefaultBaseTraversers.java      | 1745 +++++
 src/org/apache/xml/dtm/ref/DTMDocumentImpl.java    | 2411 +++++++
 src/org/apache/xml/dtm/ref/DTMManagerDefault.java  |  859 +++
 src/org/apache/xml/dtm/ref/DTMNamedNodeMap.java    |  300 +
 src/org/apache/xml/dtm/ref/DTMNodeIterator.java    |  186 +
 src/org/apache/xml/dtm/ref/DTMNodeList.java        |  127 +
 src/org/apache/xml/dtm/ref/DTMNodeListBase.java    |   81 +
 src/org/apache/xml/dtm/ref/DTMNodeProxy.java       | 2218 +++++++
 src/org/apache/xml/dtm/ref/DTMSafeStringPool.java  |  110 +
 src/org/apache/xml/dtm/ref/DTMStringPool.java      |  170 +
 src/org/apache/xml/dtm/ref/DTMTreeWalker.java      |  404 ++
 src/org/apache/xml/dtm/ref/EmptyIterator.java      |   62 +
 src/org/apache/xml/dtm/ref/ExpandedNameTable.java  |  391 ++
 src/org/apache/xml/dtm/ref/ExtendedType.java       |  145 +
 .../apache/xml/dtm/ref/IncrementalSAXSource.java   |   89 +
 .../xml/dtm/ref/IncrementalSAXSource_Filter.java   |  807 +++
 .../xml/dtm/ref/IncrementalSAXSource_Xerces.java   |  454 ++
 src/org/apache/xml/dtm/ref/NodeLocator.java        |  110 +
 src/org/apache/xml/dtm/ref/ObjectFactory.java      |  656 ++
 src/org/apache/xml/dtm/ref/SecuritySupport.java    |  144 +
 src/org/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java    | 1766 +++++
 .../DOM2DTMdefaultNamespaceDeclarationNode.java    |  679 ++
 src/org/apache/xml/dtm/ref/sax2dtm/SAX2DTM.java    | 2513 ++++++++
 src/org/apache/xml/dtm/ref/sax2dtm/SAX2DTM2.java   | 3383 ++++++++++
 src/org/apache/xml/dtm/ref/sax2dtm/SAX2RTFDTM.java |  362 ++
 src/org/apache/xml/res/XMLErrorResources.java      |  430 ++
 src/org/apache/xml/res/XMLErrorResources_ca.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_cs.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_de.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_en.java   |   31 +
 src/org/apache/xml/res/XMLErrorResources_es.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_fr.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_hu.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_it.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_ja.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_ko.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_pl.java   |  430 ++
 .../apache/xml/res/XMLErrorResources_pt_BR.java    |  430 ++
 src/org/apache/xml/res/XMLErrorResources_ru.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_sk.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_sl.java   |  431 ++
 src/org/apache/xml/res/XMLErrorResources_sv.java   |  626 ++
 src/org/apache/xml/res/XMLErrorResources_tr.java   |  430 ++
 src/org/apache/xml/res/XMLErrorResources_zh.java   |  430 ++
 .../apache/xml/res/XMLErrorResources_zh_TW.java    |  430 ++
 src/org/apache/xml/res/XMLMessages.java            |  214 +
 .../xml/serializer/AttributesImplSerializer.java   |  237 +
 src/org/apache/xml/serializer/CharInfo.java        |  807 +++
 src/org/apache/xml/serializer/DOM3Serializer.java  |  170 +
 src/org/apache/xml/serializer/DOMSerializer.java   |   74 +
 src/org/apache/xml/serializer/ElemContext.java     |  222 +
 src/org/apache/xml/serializer/ElemDesc.java        |  179 +
 src/org/apache/xml/serializer/EmptySerializer.java |  787 +++
 src/org/apache/xml/serializer/EncodingInfo.java    |  562 ++
 src/org/apache/xml/serializer/Encodings.java       |  495 ++
 src/org/apache/xml/serializer/Encodings.properties |  260 +
 .../xml/serializer/ExtendedContentHandler.java     |  271 +
 .../xml/serializer/ExtendedLexicalHandler.java     |   39 +
 .../apache/xml/serializer/HTMLEntities.properties  |  311 +
 src/org/apache/xml/serializer/Method.java          |   82 +
 .../apache/xml/serializer/NamespaceMappings.java   |  500 ++
 src/org/apache/xml/serializer/ObjectFactory.java   |  655 ++
 .../xml/serializer/OutputPropertiesFactory.java    |  516 ++
 .../apache/xml/serializer/OutputPropertyUtils.java |   83 +
 src/org/apache/xml/serializer/SecuritySupport.java |  144 +
 .../xml/serializer/SerializationHandler.java       |  145 +
 src/org/apache/xml/serializer/Serializer.java      |  238 +
 src/org/apache/xml/serializer/SerializerBase.java  | 1699 +++++
 .../apache/xml/serializer/SerializerConstants.java |   59 +
 .../apache/xml/serializer/SerializerFactory.java   |  185 +
 src/org/apache/xml/serializer/SerializerTrace.java |  153 +
 .../xml/serializer/SerializerTraceWriter.java      |  341 +
 .../apache/xml/serializer/ToHTMLSAXHandler.java    |  748 +++
 src/org/apache/xml/serializer/ToHTMLStream.java    | 2350 +++++++
 src/org/apache/xml/serializer/ToSAXHandler.java    |  438 ++
 src/org/apache/xml/serializer/ToStream.java        | 3600 +++++++++++
 .../apache/xml/serializer/ToTextSAXHandler.java    |  413 ++
 src/org/apache/xml/serializer/ToTextStream.java    |  634 ++
 src/org/apache/xml/serializer/ToUnknownStream.java | 1316 ++++
 src/org/apache/xml/serializer/ToXMLSAXHandler.java |  774 +++
 src/org/apache/xml/serializer/ToXMLStream.java     |  646 ++
 .../xml/serializer/TransformStateSetter.java       |   56 +
 src/org/apache/xml/serializer/TreeWalker.java      |  527 ++
 src/org/apache/xml/serializer/Version.src          |  150 +
 src/org/apache/xml/serializer/WriterChain.java     |   82 +
 src/org/apache/xml/serializer/WriterToASCI.java    |  155 +
 .../xml/serializer/WriterToUTF8Buffered.java       |  502 ++
 .../apache/xml/serializer/XMLEntities.properties   |   30 +
 .../apache/xml/serializer/XSLOutputAttributes.java |  236 +
 .../xml/serializer/dom3/DOM3SerializerImpl.java    |  158 +
 .../apache/xml/serializer/dom3/DOM3TreeWalker.java | 2149 +++++++
 .../apache/xml/serializer/dom3/DOMConstants.java   |  134 +
 .../xml/serializer/dom3/DOMErrorHandlerImpl.java   |   67 +
 .../apache/xml/serializer/dom3/DOMErrorImpl.java   |  176 +
 .../apache/xml/serializer/dom3/DOMLocatorImpl.java |  180 +
 .../apache/xml/serializer/dom3/DOMOutputImpl.java  |  177 +
 .../xml/serializer/dom3/DOMStringListImpl.java     |   99 +
 .../xml/serializer/dom3/LSSerializerImpl.java      | 1537 +++++
 .../xml/serializer/dom3/NamespaceSupport.java      |  315 +
 .../apache/xml/serializer/output_html.properties   |   44 +
 .../apache/xml/serializer/output_text.properties   |   37 +
 .../xml/serializer/output_unknown.properties       |   46 +
 .../apache/xml/serializer/output_xml.properties    |   46 +
 src/org/apache/xml/serializer/package.html         |   43 +
 src/org/apache/xml/serializer/utils/AttList.java   |  264 +
 src/org/apache/xml/serializer/utils/BoolStack.java |  204 +
 .../apache/xml/serializer/utils/DOM2Helper.java    |  122 +
 src/org/apache/xml/serializer/utils/Messages.java  |  366 ++
 src/org/apache/xml/serializer/utils/MsgKey.java    |  131 +
 .../xml/serializer/utils/SerializerMessages.java   |  296 +
 .../serializer/utils/SerializerMessages_ca.java    |  293 +
 .../serializer/utils/SerializerMessages_cs.java    |  293 +
 .../serializer/utils/SerializerMessages_de.java    |  293 +
 .../serializer/utils/SerializerMessages_en.java    |   30 +
 .../serializer/utils/SerializerMessages_es.java    |  293 +
 .../serializer/utils/SerializerMessages_fr.java    |  293 +
 .../serializer/utils/SerializerMessages_hu.java    |  293 +
 .../serializer/utils/SerializerMessages_it.java    |  293 +
 .../serializer/utils/SerializerMessages_ja.java    |  293 +
 .../serializer/utils/SerializerMessages_ko.java    |  293 +
 .../serializer/utils/SerializerMessages_pl.java    |  293 +
 .../serializer/utils/SerializerMessages_pt_BR.java |  293 +
 .../serializer/utils/SerializerMessages_ru.java    |  293 +
 .../serializer/utils/SerializerMessages_sk.java    |  293 +
 .../serializer/utils/SerializerMessages_sl.java    |  293 +
 .../serializer/utils/SerializerMessages_sv.java    |   98 +
 .../serializer/utils/SerializerMessages_tr.java    |  293 +
 .../serializer/utils/SerializerMessages_zh.java    |  291 +
 .../serializer/utils/SerializerMessages_zh_CN.java |   28 +
 .../serializer/utils/SerializerMessages_zh_TW.java |  293 +
 .../xml/serializer/utils/StringToIntTable.java     |  203 +
 .../xml/serializer/utils/SystemIDResolver.java     |  302 +
 src/org/apache/xml/serializer/utils/URI.java       | 1653 +++++
 src/org/apache/xml/serializer/utils/Utils.java     |   40 +
 .../serializer/utils/WrappedRuntimeException.java  |   81 +
 src/org/apache/xml/serializer/utils/XML11Char.java |  414 ++
 src/org/apache/xml/serializer/utils/XMLChar.java   | 1026 +++
 src/org/apache/xml/utils/AttList.java              |  255 +
 src/org/apache/xml/utils/BoolStack.java            |  202 +
 src/org/apache/xml/utils/Constants.java            |  112 +
 src/org/apache/xml/utils/DOM2Helper.java           |  314 +
 src/org/apache/xml/utils/DOMBuilder.java           |  795 +++
 src/org/apache/xml/utils/DOMHelper.java            | 1334 ++++
 src/org/apache/xml/utils/DOMOrder.java             |   41 +
 src/org/apache/xml/utils/DefaultErrorHandler.java  |  369 ++
 src/org/apache/xml/utils/ElemDesc.java             |  189 +
 src/org/apache/xml/utils/FastStringBuffer.java     | 1293 ++++
 src/org/apache/xml/utils/Hashtree2Node.java        |  141 +
 src/org/apache/xml/utils/IntStack.java             |  211 +
 src/org/apache/xml/utils/IntVector.java            |  419 ++
 src/org/apache/xml/utils/ListingErrorHandler.java  |  566 ++
 src/org/apache/xml/utils/LocaleUtility.java        |   88 +
 src/org/apache/xml/utils/MutableAttrListImpl.java  |  139 +
 src/org/apache/xml/utils/NSInfo.java               |  110 +
 src/org/apache/xml/utils/NameSpace.java            |   59 +
 src/org/apache/xml/utils/NamespaceSupport2.java    |  749 +++
 src/org/apache/xml/utils/NodeConsumer.java         |   40 +
 src/org/apache/xml/utils/NodeVector.java           |  740 +++
 src/org/apache/xml/utils/ObjectFactory.java        |  656 ++
 src/org/apache/xml/utils/ObjectPool.java           |  174 +
 src/org/apache/xml/utils/ObjectStack.java          |  215 +
 src/org/apache/xml/utils/ObjectVector.java         |  431 ++
 src/org/apache/xml/utils/PrefixResolver.java       |   72 +
 .../apache/xml/utils/PrefixResolverDefault.java    |  145 +
 src/org/apache/xml/utils/QName.java                |  709 ++
 src/org/apache/xml/utils/RawCharacterHandler.java  |   42 +
 src/org/apache/xml/utils/SAXSourceLocator.java     |  170 +
 src/org/apache/xml/utils/SecuritySupport.java      |  144 +
 .../apache/xml/utils/SerializableLocatorImpl.java  |  226 +
 src/org/apache/xml/utils/StopParseException.java   |   40 +
 src/org/apache/xml/utils/StringBufferPool.java     |   60 +
 src/org/apache/xml/utils/StringComparable.java     |  215 +
 src/org/apache/xml/utils/StringToIntTable.java     |  196 +
 src/org/apache/xml/utils/StringToStringTable.java  |  242 +
 .../xml/utils/StringToStringTableVector.java       |  199 +
 src/org/apache/xml/utils/StringVector.java         |  223 +
 src/org/apache/xml/utils/StylesheetPIHandler.java  |  340 +
 .../apache/xml/utils/SuballocatedByteVector.java   |  498 ++
 .../apache/xml/utils/SuballocatedIntVector.java    |  557 ++
 src/org/apache/xml/utils/SystemIDResolver.java     |  295 +
 .../apache/xml/utils/ThreadControllerWrapper.java  |   96 +
 src/org/apache/xml/utils/TreeWalker.java           |  508 ++
 src/org/apache/xml/utils/URI.java                  | 1673 +++++
 src/org/apache/xml/utils/UnImplNode.java           | 1977 ++++++
 .../apache/xml/utils/WrappedRuntimeException.java  |   74 +
 src/org/apache/xml/utils/WrongParserException.java |   40 +
 src/org/apache/xml/utils/XML11Char.java            |  432 ++
 src/org/apache/xml/utils/XMLChar.java              |  668 ++
 .../apache/xml/utils/XMLCharacterRecognizer.java   |  133 +
 src/org/apache/xml/utils/XMLReaderManager.java     |  161 +
 src/org/apache/xml/utils/XMLString.java            |  689 ++
 src/org/apache/xml/utils/XMLStringDefault.java     |  818 +++
 src/org/apache/xml/utils/XMLStringFactory.java     |   71 +
 .../apache/xml/utils/XMLStringFactoryDefault.java  |   84 +
 src/org/apache/xml/utils/package.html              |   27 +
 src/org/apache/xml/utils/res/CharArrayWrapper.java |   42 +
 src/org/apache/xml/utils/res/IntArrayWrapper.java  |   42 +
 src/org/apache/xml/utils/res/LongArrayWrapper.java |   42 +
 .../apache/xml/utils/res/StringArrayWrapper.java   |   43 +
 src/org/apache/xml/utils/res/XResourceBundle.java  |  140 +
 .../apache/xml/utils/res/XResourceBundleBase.java  |   50 +
 src/org/apache/xml/utils/res/XResources_cy.java    |   84 +
 src/org/apache/xml/utils/res/XResources_de.java    |   73 +
 src/org/apache/xml/utils/res/XResources_el.java    |   90 +
 src/org/apache/xml/utils/res/XResources_en.java    |   73 +
 src/org/apache/xml/utils/res/XResources_es.java    |   73 +
 src/org/apache/xml/utils/res/XResources_fr.java    |   73 +
 src/org/apache/xml/utils/res/XResources_he.java    |   79 +
 src/org/apache/xml/utils/res/XResources_hy.java    |   86 +
 src/org/apache/xml/utils/res/XResources_it.java    |   73 +
 .../apache/xml/utils/res/XResources_ja_JP_A.java   |   86 +
 .../apache/xml/utils/res/XResources_ja_JP_HA.java  |   86 +
 .../apache/xml/utils/res/XResources_ja_JP_HI.java  |   87 +
 .../apache/xml/utils/res/XResources_ja_JP_I.java   |   86 +
 src/org/apache/xml/utils/res/XResources_ka.java    |   84 +
 src/org/apache/xml/utils/res/XResources_ko.java    |   80 +
 src/org/apache/xml/utils/res/XResources_sv.java    |   73 +
 src/org/apache/xml/utils/res/XResources_zh_CN.java |   80 +
 src/org/apache/xml/utils/res/XResources_zh_TW.java |   80 +
 src/org/apache/xpath/Arg.java                      |  258 +
 src/org/apache/xpath/CachedXPathAPI.java           |  340 +
 src/org/apache/xpath/Expression.java               |  589 ++
 src/org/apache/xpath/ExpressionNode.java           |   52 +
 src/org/apache/xpath/ExpressionOwner.java          |   45 +
 src/org/apache/xpath/ExtensionsProvider.java       |   60 +
 src/org/apache/xpath/FoundIndex.java               |   37 +
 src/org/apache/xpath/NodeSet.java                  | 1370 ++++
 src/org/apache/xpath/NodeSetDTM.java               | 1247 ++++
 src/org/apache/xpath/SourceTree.java               |   52 +
 src/org/apache/xpath/SourceTreeManager.java        |  390 ++
 src/org/apache/xpath/VariableStack.java            |  547 ++
 .../xpath/WhitespaceStrippingElementMatcher.java   |   54 +
 src/org/apache/xpath/XPath.java                    |  643 ++
 src/org/apache/xpath/XPathAPI.java                 |  288 +
 src/org/apache/xpath/XPathContext.java             | 1352 ++++
 src/org/apache/xpath/XPathException.java           |  328 +
 src/org/apache/xpath/XPathFactory.java             |   50 +
 src/org/apache/xpath/XPathProcessorException.java  |   54 +
 src/org/apache/xpath/XPathVisitable.java           |   42 +
 src/org/apache/xpath/XPathVisitor.java             |  203 +
 src/org/apache/xpath/axes/AttributeIterator.java   |   75 +
 src/org/apache/xpath/axes/AxesWalker.java          |  590 ++
 src/org/apache/xpath/axes/BasicTestIterator.java   |  226 +
 src/org/apache/xpath/axes/ChildIterator.java       |  121 +
 src/org/apache/xpath/axes/ChildTestIterator.java   |  178 +
 src/org/apache/xpath/axes/ContextNodeList.java     |  136 +
 src/org/apache/xpath/axes/DescendantIterator.java  |  380 ++
 src/org/apache/xpath/axes/FilterExprIterator.java  |  214 +
 .../xpath/axes/FilterExprIteratorSimple.java       |  315 +
 src/org/apache/xpath/axes/FilterExprWalker.java    |  349 +
 .../xpath/axes/HasPositionalPredChecker.java       |  124 +
 src/org/apache/xpath/axes/IteratorPool.java        |  119 +
 src/org/apache/xpath/axes/LocPathIterator.java     | 1033 +++
 .../apache/xpath/axes/MatchPatternIterator.java    |  331 +
 src/org/apache/xpath/axes/NodeSequence.java        |  953 +++
 src/org/apache/xpath/axes/OneStepIterator.java     |  345 +
 .../apache/xpath/axes/OneStepIteratorForward.java  |  172 +
 src/org/apache/xpath/axes/PathComponent.java       |   36 +
 src/org/apache/xpath/axes/PredicatedNodeTest.java  |  647 ++
 src/org/apache/xpath/axes/RTFIterator.java         |   43 +
 src/org/apache/xpath/axes/ReverseAxesWalker.java   |  247 +
 .../apache/xpath/axes/SelfIteratorNoPredicate.java |  127 +
 src/org/apache/xpath/axes/SubContextList.java      |   52 +
 src/org/apache/xpath/axes/UnionChildIterator.java  |  150 +
 src/org/apache/xpath/axes/UnionPathIterator.java   |  584 ++
 src/org/apache/xpath/axes/WalkerFactory.java       | 1825 ++++++
 src/org/apache/xpath/axes/WalkingIterator.java     |  363 ++
 .../apache/xpath/axes/WalkingIteratorSorted.java   |  214 +
 src/org/apache/xpath/axes/package.html             |   27 +
 src/org/apache/xpath/compiler/Compiler.java        | 1268 ++++
 src/org/apache/xpath/compiler/FunctionTable.java   |  407 ++
 src/org/apache/xpath/compiler/Keywords.java        |  286 +
 src/org/apache/xpath/compiler/Lexer.java           |  669 ++
 src/org/apache/xpath/compiler/OpCodes.java         |  632 ++
 src/org/apache/xpath/compiler/OpMap.java           |  455 ++
 src/org/apache/xpath/compiler/OpMapVector.java     |  116 +
 src/org/apache/xpath/compiler/PsuedoNames.java     |   59 +
 src/org/apache/xpath/compiler/XPathDumper.java     |   31 +
 src/org/apache/xpath/compiler/XPathParser.java     | 2401 +++++++
 src/org/apache/xpath/compiler/package.html         |   26 +
 .../apache/xpath/domapi/XPathEvaluatorImpl.java    |  271 +
 .../apache/xpath/domapi/XPathExpressionImpl.java   |  186 +
 .../apache/xpath/domapi/XPathNSResolverImpl.java   |   61 +
 .../apache/xpath/domapi/XPathNamespaceImpl.java    |  322 +
 src/org/apache/xpath/domapi/XPathResultImpl.java   |  510 ++
 .../xpath/domapi/XPathStylesheetDOM3Exception.java |   34 +
 src/org/apache/xpath/domapi/package.html           |   26 +
 src/org/apache/xpath/functions/FuncBoolean.java    |   48 +
 src/org/apache/xpath/functions/FuncCeiling.java    |   47 +
 src/org/apache/xpath/functions/FuncConcat.java     |   90 +
 src/org/apache/xpath/functions/FuncContains.java   |   57 +
 src/org/apache/xpath/functions/FuncCount.java      |   64 +
 src/org/apache/xpath/functions/FuncCurrent.java    |   82 +
 .../apache/xpath/functions/FuncDoclocation.java    |   71 +
 .../xpath/functions/FuncExtElementAvailable.java   |   95 +
 .../apache/xpath/functions/FuncExtFunction.java    |  340 +
 .../xpath/functions/FuncExtFunctionAvailable.java  |  104 +
 src/org/apache/xpath/functions/FuncFalse.java      |   56 +
 src/org/apache/xpath/functions/FuncFloor.java      |   47 +
 src/org/apache/xpath/functions/FuncGenerateId.java |   62 +
 src/org/apache/xpath/functions/FuncId.java         |  151 +
 src/org/apache/xpath/functions/FuncLang.java       |   82 +
 src/org/apache/xpath/functions/FuncLast.java       |  106 +
 src/org/apache/xpath/functions/FuncLocalPart.java  |   57 +
 src/org/apache/xpath/functions/FuncNamespace.java  |   78 +
 .../apache/xpath/functions/FuncNormalizeSpace.java |   86 +
 src/org/apache/xpath/functions/FuncNot.java        |   47 +
 src/org/apache/xpath/functions/FuncNumber.java     |   47 +
 src/org/apache/xpath/functions/FuncPosition.java   |  134 +
 src/org/apache/xpath/functions/FuncQname.java      |   63 +
 src/org/apache/xpath/functions/FuncRound.java      |   52 +
 src/org/apache/xpath/functions/FuncStartsWith.java |   48 +
 src/org/apache/xpath/functions/FuncString.java     |   47 +
 .../apache/xpath/functions/FuncStringLength.java   |   47 +
 src/org/apache/xpath/functions/FuncSubstring.java  |  124 +
 .../apache/xpath/functions/FuncSubstringAfter.java |   55 +
 .../xpath/functions/FuncSubstringBefore.java       |   53 +
 src/org/apache/xpath/functions/FuncSum.java        |   65 +
 .../apache/xpath/functions/FuncSystemProperty.java |  195 +
 src/org/apache/xpath/functions/FuncTranslate.java  |   88 +
 src/org/apache/xpath/functions/FuncTrue.java       |   56 +
 .../xpath/functions/FuncUnparsedEntityURI.java     |   55 +
 src/org/apache/xpath/functions/Function.java       |  144 +
 src/org/apache/xpath/functions/Function2Args.java  |  184 +
 src/org/apache/xpath/functions/Function3Args.java  |  183 +
 .../apache/xpath/functions/FunctionDef1Arg.java    |  167 +
 .../apache/xpath/functions/FunctionMultiArgs.java  |  236 +
 src/org/apache/xpath/functions/FunctionOneArg.java |  174 +
 src/org/apache/xpath/functions/ObjectFactory.java  |  656 ++
 .../apache/xpath/functions/SecuritySupport.java    |  144 +
 .../xpath/functions/WrongNumberArgsException.java  |   43 +
 src/org/apache/xpath/functions/package.html        |   29 +
 .../apache/xpath/jaxp/JAXPExtensionsProvider.java  |  208 +
 src/org/apache/xpath/jaxp/JAXPPrefixResolver.java  |  127 +
 src/org/apache/xpath/jaxp/JAXPVariableStack.java   |   73 +
 src/org/apache/xpath/jaxp/XPathExpressionImpl.java |  388 ++
 src/org/apache/xpath/jaxp/XPathFactoryImpl.java    |  265 +
 src/org/apache/xpath/jaxp/XPathImpl.java           |  545 ++
 src/org/apache/xpath/objects/DTMXRTreeFrag.java    |   58 +
 src/org/apache/xpath/objects/XBoolean.java         |  168 +
 src/org/apache/xpath/objects/XBooleanStatic.java   |   69 +
 .../apache/xpath/objects/XMLStringFactoryImpl.java |  101 +
 src/org/apache/xpath/objects/XNodeSet.java         |  969 +++
 src/org/apache/xpath/objects/XNodeSetForDOM.java   |  128 +
 src/org/apache/xpath/objects/XNull.java            |  130 +
 src/org/apache/xpath/objects/XNumber.java          |  437 ++
 src/org/apache/xpath/objects/XObject.java          |  759 +++
 src/org/apache/xpath/objects/XObjectFactory.java   |  161 +
 src/org/apache/xpath/objects/XRTreeFrag.java       |  301 +
 .../xpath/objects/XRTreeFragSelectWrapper.java     |  154 +
 src/org/apache/xpath/objects/XString.java          | 1122 ++++
 src/org/apache/xpath/objects/XStringForChars.java  |  216 +
 src/org/apache/xpath/objects/XStringForFSB.java    |  986 +++
 src/org/apache/xpath/objects/package.html          |   27 +
 src/org/apache/xpath/operations/And.java           |   75 +
 src/org/apache/xpath/operations/Bool.java          |   68 +
 src/org/apache/xpath/operations/Div.java           |   67 +
 src/org/apache/xpath/operations/Equals.java        |   74 +
 src/org/apache/xpath/operations/Gt.java            |   49 +
 src/org/apache/xpath/operations/Gte.java           |   50 +
 src/org/apache/xpath/operations/Lt.java            |   49 +
 src/org/apache/xpath/operations/Lte.java           |   49 +
 src/org/apache/xpath/operations/Minus.java         |   68 +
 src/org/apache/xpath/operations/Mod.java           |   67 +
 src/org/apache/xpath/operations/Mult.java          |   66 +
 src/org/apache/xpath/operations/Neg.java           |   65 +
 src/org/apache/xpath/operations/NotEquals.java     |   49 +
 src/org/apache/xpath/operations/Number.java        |   69 +
 src/org/apache/xpath/operations/Operation.java     |  212 +
 src/org/apache/xpath/operations/Or.java            |   75 +
 src/org/apache/xpath/operations/Plus.java          |   67 +
 src/org/apache/xpath/operations/Quo.java           |   52 +
 src/org/apache/xpath/operations/String.java        |   47 +
 .../apache/xpath/operations/UnaryOperation.java    |  163 +
 src/org/apache/xpath/operations/Variable.java      |  387 ++
 .../xpath/operations/VariableSafeAbsRef.java       |   74 +
 src/org/apache/xpath/operations/package.html       |   26 +
 src/org/apache/xpath/package.html                  |   27 +
 .../xpath/patterns/ContextMatchStepPattern.java    |  179 +
 src/org/apache/xpath/patterns/FunctionPattern.java |  248 +
 src/org/apache/xpath/patterns/NodeTest.java        |  692 ++
 src/org/apache/xpath/patterns/NodeTestFilter.java  |   39 +
 src/org/apache/xpath/patterns/StepPattern.java     | 1053 +++
 src/org/apache/xpath/patterns/UnionPattern.java    |  218 +
 src/org/apache/xpath/patterns/package.html         |   26 +
 src/org/apache/xpath/res/XPATHErrorResources.java  |  999 +++
 .../apache/xpath/res/XPATHErrorResources_ca.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_cs.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_de.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_en.java   |   31 +
 .../apache/xpath/res/XPATHErrorResources_es.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_fr.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_hu.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_it.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_ja.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_ko.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_pl.java   |  991 +++
 .../xpath/res/XPATHErrorResources_pt_BR.java       |  992 +++
 .../apache/xpath/res/XPATHErrorResources_ru.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_sk.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_sl.java   |  992 +++
 .../apache/xpath/res/XPATHErrorResources_sv.java   | 1252 ++++
 .../apache/xpath/res/XPATHErrorResources_tr.java   |  991 +++
 .../apache/xpath/res/XPATHErrorResources_zh.java   |  991 +++
 .../xpath/res/XPATHErrorResources_zh_CN.java       |   25 +
 .../xpath/res/XPATHErrorResources_zh_TW.java       |  991 +++
 src/org/apache/xpath/res/XPATHMessages.java        |  149 +
 src/org/apache/xpath/res/package.html              |   26 +
 src/trax/trax.properties                           |   28 +
 src/xml-commons-external-1.3.02-src.tar.gz         |  Bin 0 -> 311599 bytes
 todo.xsl                                           |  175 +
 tools/JLex.jar                                     |  Bin 0 -> 54603 bytes
 tools/ant.jar                                      |  Bin 0 -> 717666 bytes
 tools/antRun                                       |    9 +
 tools/antRun.bat                                   |   36 +
 tools/java_cup.jar                                 |  Bin 0 -> 62365 bytes
 tools/stylebook-1.0-b3_xalan-2.jar                 |  Bin 0 -> 52198 bytes
 tools/xalan2jdoc.jar                               |  Bin 0 -> 124095 bytes
 tools/xalan2jtaglet.jar                            |  Bin 0 -> 2701 bytes
 trax_bugs.xml                                      |   69 +
 xdocs/sources/design/compilation.gif               |  Bin 0 -> 13454 bytes
 xdocs/sources/design/conceptual.gif                |  Bin 0 -> 45017 bytes
 xdocs/sources/design/data.gif                      |  Bin 0 -> 59498 bytes
 xdocs/sources/design/design2_0_0.xml               |  293 +
 xdocs/sources/design/org_apache.gif                |  Bin 0 -> 976 bytes
 xdocs/sources/design/process.gif                   |  Bin 0 -> 19895 bytes
 xdocs/sources/design/trax.gif                      |  Bin 0 -> 11435 bytes
 xdocs/sources/design/xalan.gif                     |  Bin 0 -> 15576 bytes
 xdocs/sources/design/xalan1_1x1.gif                |  Bin 0 -> 12782 bytes
 xdocs/sources/design/xmllogo.gif                   |  Bin 0 -> 2367 bytes
 xdocs/sources/design/xpath.gif                     |  Bin 0 -> 9798 bytes
 xdocs/sources/design/xslt_abstract.gif             |  Bin 0 -> 9036 bytes
 xdocs/sources/entities.src                         |  117 +
 xdocs/sources/xalan-apache-org-site.xml            |   32 +
 xdocs/sources/xalan-apache-org/index.xml           |   59 +
 xdocs/sources/xalan-collate.xsl                    |   49 +
 xdocs/sources/xalan-jlocal.xml                     |   62 +
 xdocs/sources/xalan-jsite.xml                      |   66 +
 xdocs/sources/xalan/bugreporting.xml               |   69 +
 xdocs/sources/xalan/builds.xml                     |  403 ++
 xdocs/sources/xalan/charter.xml                    |  319 +
 xdocs/sources/xalan/commandline.xml                |  120 +
 xdocs/sources/xalan/commandline_xsltc.xml          |  261 +
 xdocs/sources/xalan/contact_us.xml                 |  105 +
 xdocs/sources/xalan/downloads.xml                  |  351 +
 xdocs/sources/xalan/dtm.xml                        |  113 +
 xdocs/sources/xalan/extensions.xml                 |  902 +++
 xdocs/sources/xalan/extensions_xsltc.xml           |  198 +
 xdocs/sources/xalan/extensionslib.xml              |  629 ++
 xdocs/sources/xalan/faq.xml                        |  763 +++
 xdocs/sources/xalan/features.xml                   |  248 +
 xdocs/sources/xalan/getstarted.xml                 |  109 +
 xdocs/sources/xalan/history.xml                    | 6783 ++++++++++++++++++++
 xdocs/sources/xalan/index.xml                      |  370 ++
 xdocs/sources/xalan/overview.xml                   |  189 +
 xdocs/sources/xalan/public_apis.xml                |  129 +
 xdocs/sources/xalan/readme.xml                     | 1036 +++
 xdocs/sources/xalan/resources.xml                  |  203 +
 xdocs/sources/xalan/samples.xml                    |  713 ++
 xdocs/sources/xalan/trax.xml                       |  274 +
 xdocs/sources/xalan/usagepatterns.xml              |  584 ++
 xdocs/sources/xalan/whatsnew.xml                   |   42 +
 xdocs/sources/xalan/xmlfilters.gif                 |  Bin 0 -> 4772 bytes
 xdocs/sources/xalan/xpath_apis.xml                 |  400 ++
 xdocs/sources/xalan/xsltc_history.xml              | 4792 ++++++++++++++
 xdocs/sources/xalan/xsltc_usage.xml                |  624 ++
 xdocs/sources/xalandesign.xml                      |   28 +
 xdocs/sources/xsltc.xml                            |  110 +
 xdocs/sources/xsltc/DOMInterface.gif               |  Bin 0 -> 10110 bytes
 xdocs/sources/xsltc/DOMLocking.gif                 |  Bin 0 -> 3530 bytes
 xdocs/sources/xsltc/README                         |  260 +
 xdocs/sources/xsltc/README.APACHE                  |  101 +
 xdocs/sources/xsltc/README.api                     |  436 ++
 xdocs/sources/xsltc/README.xslt                    |  135 +
 xdocs/sources/xsltc/README.xsltc                   |  143 +
 xdocs/sources/xsltc/README2                        |  101 +
 xdocs/sources/xsltc/all_namespaces.gif             |  Bin 0 -> 3853 bytes
 xdocs/sources/xsltc/ast_stage1.gif                 |  Bin 0 -> 2932 bytes
 xdocs/sources/xsltc/ast_stage2.gif                 |  Bin 0 -> 4688 bytes
 xdocs/sources/xsltc/ast_stage3.gif                 |  Bin 0 -> 5606 bytes
 xdocs/sources/xsltc/cast_expression.gif            |  Bin 0 -> 2263 bytes
 xdocs/sources/xsltc/class_loader.gif               |  Bin 0 -> 5205 bytes
 xdocs/sources/xsltc/compiler_AST.gif               |  Bin 0 -> 2969 bytes
 xdocs/sources/xsltc/compiler_DOM.gif               |  Bin 0 -> 2413 bytes
 xdocs/sources/xsltc/compiler_architecture.gif      |  Bin 0 -> 4642 bytes
 xdocs/sources/xsltc/compiler_design.gif            |  Bin 0 -> 7087 bytes
 xdocs/sources/xsltc/dom_namespace1.gif             |  Bin 0 -> 2969 bytes
 xdocs/sources/xsltc/dom_namespace2.gif             |  Bin 0 -> 3805 bytes
 xdocs/sources/xsltc/dom_namespace3.gif             |  Bin 0 -> 4670 bytes
 xdocs/sources/xsltc/index.xml                      |  168 +
 xdocs/sources/xsltc/iterator_stack.gif             |  Bin 0 -> 4081 bytes
 xdocs/sources/xsltc/key_relations.gif              |  Bin 0 -> 5667 bytes
 xdocs/sources/xsltc/match_namespace1.gif           |  Bin 0 -> 6487 bytes
 xdocs/sources/xsltc/match_namespace2.gif           |  Bin 0 -> 9034 bytes
 xdocs/sources/xsltc/namespace_stack.gif            |  Bin 0 -> 3319 bytes
 xdocs/sources/xsltc/output_namespaces1.gif         |  Bin 0 -> 3483 bytes
 xdocs/sources/xsltc/output_namespaces2.gif         |  Bin 0 -> 3360 bytes
 xdocs/sources/xsltc/output_settings.gif            |  Bin 0 -> 5263 bytes
 xdocs/sources/xsltc/overall_design.gif             |  Bin 0 -> 5114 bytes
 xdocs/sources/xsltc/pattern_objects.gif            |  Bin 0 -> 5206 bytes
 xdocs/sources/xsltc/runtime_architecture.gif       |  Bin 0 -> 5536 bytes
 xdocs/sources/xsltc/runtime_design.gif             |  Bin 0 -> 8540 bytes
 xdocs/sources/xsltc/runtime_type_mapping.gif       |  Bin 0 -> 9446 bytes
 xdocs/sources/xsltc/sort_objects.gif               |  Bin 0 -> 3175 bytes
 xdocs/sources/xsltc/translet_wrapping.gif          |  Bin 0 -> 6037 bytes
 xdocs/sources/xsltc/trax_output_settings.gif       |  Bin 0 -> 5263 bytes
 xdocs/sources/xsltc/trax_translet_wrapping.gif     |  Bin 0 -> 6037 bytes
 xdocs/sources/xsltc/type_mapping.gif               |  Bin 0 -> 3368 bytes
 xdocs/sources/xsltc/type_mappings.gif              |  Bin 0 -> 3807 bytes
 xdocs/sources/xsltc/typecast.gif                   |  Bin 0 -> 1950 bytes
 xdocs/sources/xsltc/uri_resolver.gif               |  Bin 0 -> 4431 bytes
 xdocs/sources/xsltc/xsl_choose_design.xml          |   77 +
 xdocs/sources/xsltc/xsl_comment_design.xml         |   73 +
 xdocs/sources/xsltc/xsl_if_design.xml              |   76 +
 xdocs/sources/xsltc/xsl_include_design.xml         |  132 +
 xdocs/sources/xsltc/xsl_key_design.xml             |  257 +
 xdocs/sources/xsltc/xsl_lang_design.xml            |   77 +
 xdocs/sources/xsltc/xsl_sort_design.xml            |  173 +
 xdocs/sources/xsltc/xsl_unparsed_design.xml        |   60 +
 xdocs/sources/xsltc/xsl_variable_design.xml        |  205 +
 xdocs/sources/xsltc/xsl_whitespace_design.xml      |  304 +
 xdocs/sources/xsltc/xsltc_compiler.xml             |  343 +
 xdocs/sources/xsltc/xsltc_dom.xml                  |  445 ++
 xdocs/sources/xsltc/xsltc_iterators.xml            |  358 ++
 xdocs/sources/xsltc/xsltc_namespace.xml            |  568 ++
 xdocs/sources/xsltc/xsltc_native_api.xml           |  308 +
 xdocs/sources/xsltc/xsltc_overview.xml             |   27 +
 xdocs/sources/xsltc/xsltc_performance.xml          |  268 +
 xdocs/sources/xsltc/xsltc_predicates.xml           |  343 +
 xdocs/sources/xsltc/xsltc_runtime.xml              |  469 ++
 xdocs/sources/xsltc/xsltc_trax.xml                 |  586 ++
 xdocs/sources/xsltc/xsltc_trax_api.xml             |   65 +
 xdocs/style/dtd/spec.dtd                           |  593 ++
 xdocs/style/dtd/xsl-html40s.dtd                    | 1520 +++++
 xdocs/style/loaderdesign.xml                       |    7 +
 xdocs/style/stylesheets/design2project.xsl         |   51 +
 xdocs/style/stylesheets/designdoc2html.xsl         |  274 +
 xdocs/style/stylesheets/done.xsl                   |   67 +
 xdocs/style/stylesheets/spec.xsl                   |  238 +
 xdocs/style/stylesheets/xml2fo.xsl                 |  507 ++
 xdocs/xml-site-style.tar.gz                        |  Bin 0 -> 23391 bytes
 xsltc_todo.xml                                     |  118 +
 1294 files changed, 400423 insertions(+)

diff --git a/.classpath b/.classpath
new file mode 100644
index 00000000..b4678427
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="lib" path="lib/runtime.jar"/>
+	<classpathentry kind="lib" path="lib/regexp.jar"/>
+	<classpathentry kind="lib" path="tools/java_cup.jar"/>
+	<classpathentry kind="lib" path="tools/JLex.jar"/>
+	<classpathentry kind="lib" path="lib/bcel-6.7.0.jar"/>
+	<classpathentry kind="lib" path="lib/endorsed/xml-apis.jar"/>
+	<classpathentry kind="lib" path="lib/endorsed/xercesImpl.jar"/>
+	<classpathentry kind="lib" path="lib/bsf.jar"/>
+	<classpathentry kind="lib" path="lib/commons-logging-1.2.jar"/>
+	<classpathentry kind="lib" path="lib/rhino-1.7.14.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="build/classes"/>
+</classpath>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..f4d30d4c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/build/
\ No newline at end of file
diff --git a/.project b/.project
new file mode 100644
index 00000000..47ae031b
--- /dev/null
+++ b/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<projectDescription>
+	<name>apache-xalan-j-2.7.1-maint-main</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..5917cfb9
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,269 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000..7e642675
--- /dev/null
+++ b/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,5 @@
+#Mon Jul 14 00:07:56 EDT 2008
+eclipse.preferences.version=1
+formatter_profile=_Development
+formatter_settings_version=11
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" e [...]
diff --git a/KEYS b/KEYS
new file mode 100644
index 00000000..5d301302
--- /dev/null
+++ b/KEYS
@@ -0,0 +1,503 @@
+This file contains the PGP keys of xml-commons committers 
+and are used for signing .zip/.tar.gz distributions.
+
+To verify the .sig on a distribution:
+  Using PGP:  pgp xalan-j_version.num.zip.sig
+  Using gpg:  gpg -verify xalan-j_version.num.zip.sig xalan-j_version.num.zip
+
+To import these public keys into your keyring: 
+  Using PGP:  pgp < KEYS    or pgp -ka KEYS
+  Using gpg:  gpg --import < KEYS
+
+Committers: to put your key in here: 
+  Using PGP:  pgp -kxa <your name> and append it to this file.
+  Using gpg:  gpg --export -a <your_name> >>KEYS should do the trick
+
+
+Shane Curcuru  curcuru@apache.org
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP Personal Privacy 6.5.3
+
+mQGiBDghjNIRBADXB4UY4YfZ2DmbSushlzPZCkY00iDPUB+GkW6FQhgnGCLZovgy
+FhCnCsKdN1xyHFq/Ns3PV3HPrMGxFKgVOfRuxREbF8CoXAa/u0qR1WoAm+rlyC9l
+OVsHdXxyOpZ8e4SPGne8LQYZwr2q+LsHiXOZktkaBo8ua8F4EJYkBMFhZQCg/4Iw
+jXmfpt661Essmf8d05cMdAcEAL0r+PrFxCmrU8Ok+r74+eqyclxVbiDbOf7Uef6N
+fEJmC5ihX7p8k8eEf2XepeAo6N0gdOxYVXVwcoRCmqPy7SSg1jnXqKOnA87ylv16
+lOiJ5WUkiVX96WOWEsbbYKuggmWeDL+6iFc9hp6oEP2sf/geC8AEAEHTPfneJzpo
+3z28A/9iX41r4K0iRx5eIJu2KUrjdpPxhn0JPe9dz2XzWZIciNeki+ThrcarEj9h
+lmfvcGLifXbQfXuFid3btMsBRI8dqAbbXmyfvCYYSHDOkXEmoMW66AWfeF4hgfHF
+SA5lmcpH4mtHU69uC0+cvYlRROP+HaeOepYbriA+9A9Qq4MAW7QiU2hhbmUgQ3Vy
+Y3VydSA8Y3VyY3VydUBhcGFjaGUub3JnPokATgQQEQIADgUCOy5rCAQLAwIBAhkB
+AAoJEDLsF1kwoh1V/nkAoMGf6NVxNmMxpMJ9mQW6pzwWDAF2AKCe05LW35bV/px3
+c1a5mBZf0U8exokARgQQEQIABgUCOy5q+gAKCRAZucGLZELD3ErhAJ95upvPEsLB
+W+GF/Q27gKwJAJWh5ACg9vPu27CELQPkx5x6fhquWlPZWR6JAEYEEBECAAYFAjsu
+bP0ACgkQ1so098tadVyJkACbBhPpRY1usOMqaEoVi8iQvqJTaxMAoJDFZU6+RUTX
+dpyd/BhwgKB32d7TiQBGBBARAgAGBQI7LsU+AAoJEL66K4f1/EtCBKMAoMTRzp2x
+mzR4TjVuLDS1E4jkOAkWAKC4ONEEtQjIuTuDCVhZPQTtvk+0abQnU2hhbmUgQ3Vy
+Y3VydSA8c2hhbmVfY3VyY3VydUBsb3R1cy5jb20+iQBOBBARAgAOBQI7LmsIBAsD
+AgECGQAACgkQMuwXWTCiHVUPBACdHm9xrBcNMoEEgR0l+m/8zpgNqWEAn1CbpI+L
+0JNmBIyppFM1pCcXp5K6iQBOBBARAgAOBQI4IYzSBAsDAgECGQEACgkQMuwXWTCi
+HVXQIQCg1Q1MKkWygIsDGAOhiPaM09pTdlUAniTeCkoOI0+2IgD/NtqnGDaSvNDn
+iQBGBBARAgAGBQI4qZk/AAoJEFHrPvFXdlryVbIAoO/egti1esgRI6GErIhICg3I
+octfAKDlpw6NWq/WTxk1Aa0pN/1b6fmD5IkARgQQEQIABgUCOxPAFAAKCRAZucGL
+ZELD3ElDAJ9dcJ0/3luizN4DiPKeIiMsN4PiAQCfdCDLUWcAs93yj0MfeACJ7F6+
+UcqJAEYEEBECAAYFAjsubTcACgkQ1so098tadVzvZQCfRN3SVna4GEb5IwSm/zRn
+0exFr6MAoLSGnZ1wKQT12W/tNR/y2BueOEY2iQBGBBARAgAGBQI6rusTAAoJEBm5
+wYtkQsPcIsIAn0lLDcnoFp5jfpJqV5FnIgIjJ8HkAJ49bCzhw7U5n9G8XEYDQVE2
+eLyMgIkARgQQEQIABgUCOy7FfwAKCRC+uiuH9fxLQhjTAKDDUMomB1wKbVEhcdoy
+zpjt13tTMgCgiser+HuJ5boYdvtoEfsn0bHQMFS0J1NoYW5lIEN1cmN1cnUgPHNo
+YW5lX2N1cmN1cnVAeWFob28uY29tPokASwQQEQIACwUCPD8X0QQLAwIBAAoJEDLs
+F1kwoh1VSusAnAuo93Gu3IphIzuBQSsFu9YRl5HLAKCH3V71nV+Td9udzwT6RIsn
+WWIPLIkARgQQEQIABgUCPD8Y0gAKCRAZucGLZELD3KwAAJ45UpvBFaNKOa64ujpg
+2dKYVAGIZACg8fNYqXgVuqaB7Xrzyok45ciCfiC5Ag0EOCGM0hAIAPZCV7cIfwgX
+cqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyD
+vWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5
+u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98
+iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlA
+GBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqr
+ol7DVekyCzsAAgIIAM7v0Dm7spCxsDywqEkBCn3jUhjzq+8Ctl0qfHPA0tQdo61S
++KB/j2G+sFYXDXd/l7ePj/wX5ZXpkVPNBg+rf0R6ExGYSIaf9/HqwSyXyz6hQ2HY
+yn99BDDIxViIXnIPUJ2Ul1Nn+xCduC/v756LYwM+oWXyb429W9bV9z0NVtnvpUxY
+Us9UWEiseJrBHHs92dMFWpTalpXrd7e/HAmUU+HzzpMjOAuxW7SunLLxVF5CH7t6
+oMeGlZPB1CMF5B2Q9lu14hUj4TLYHD3lAG9wCHmCbP4qj+B+DeKCfAerV8ZqQ5tz
+/OT4QuICThVE4Z2ShpC7VsHVGoKPF0igeVVAP1CJAEYEGBECAAYFAjghjNIACgkQ
+MuwXWTCiHVV0vgCg4cicMdOPPnOwEyDUhn+iMYl0MmEAoOOqSf33NB1VlLx344qA
+0Wi0FCL/
+=QTmn
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGiBDnjTUMRBADGzi7y1XiTty/HZ1QhRQxMkyf7JD/E5dGXCVLRoSQV9/hdKPtF
+OGzjZQt6DssPnisgrW6hSLEs8GrZKHCZE6z8h5Yekg+WJTs3K0LNJ3X/tStVe/fU
+DarLM7u0qwtcsaISWFMRoy1xbrxBkpFBeNkD+FRUk8sXTVXoOGvm3Fw/8wCg/+pg
+Y7XD6ZIA0m/CxrxR+xTBri8D/Rk4/5rzsT42AImJwAweJidzlmmvWcDGjZolDxrH
+TlVpIXFjGFJBj9tg1Xz+3/w9zKyk900gcwlHU7uz28xPylishgd8DyAb/enSXsEy
+NC1EagypAbMpEhTAdBaUNPb6t8yOX3dHUki5yuZ+PryOyKWTaiHyhHLwJ5vZi9xm
+o+/ZBACqjUqAL27JOC1qw1zrWCQQzEJIeIIdGFEGoMBiFC425vh/1dJA1LUICHSZ
+bZvg7VlvAMErnZb/IcVx4LX4R8Uergh0E/4Xi6krTYZvDuI4RmP5Jn/7IaK2c27I
+lCx7I0hj4CQIWVIEVCDAGjJk9E38VahJYHySHzjMdhXSjTbqW7QnTG90dXN4c2wg
+VGVhbSA8TG90dXN4c2xfVGVhbUBsb3R1cy5jb20+iQBOBBARAgAOBQI5401DBAsD
+AgECGQEACgkQGbnBi2RCw9yVZwCgjxC/ie5/GhPLZyQhMSQvJuDJP8kAn17UNfN/
+tRtFfcJDrNcC7P21ut+VuQINBDnjTUMQCAD2Qle3CH8IF3KiutapQvMF6PlTETlP
+tvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2
+Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVy
+OtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPw
+pVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnI
+Byl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICB/9g
+5aR6mWbvaZAwN/IFwIC9cd54cDAW6pvowo6/gkgLfwULI7iGR8jrHHs9rSu968fV
+3L7ys3pFLR93/22mJR1InTp+qQdUntcnh5fwbAd9Z8NoM2QEuY4c7cVjobazOgPf
+C6XZkS1C3tHcvUedzR8kmf1hiRtILWW2pF7A9JbJB3RHcuBut3cS3eME2+s+dCSl
+SugZKyVFuiDoKO59TD7OIn9dwipVhX7UgG0uLDlZzCd9dHLsrlr75LDxIZyiifDB
+1oa+xM5smFYEqux+3lf/UNGhpxcaGDJM09UUpOVv8yVz+FZQilZ7Bu0XKvnj1p91
+YFVAiQvQHijya+kMy6MCiQBGBBgRAgAGBQI5401DAAoJEBm5wYtkQsPcPlUAoNkm
+fMB0HL71h5QYfB/NRJupWsWUAKCi2UETq9cwA7QtuMyQ1cjvkA1mnQ==
+=lNZ2
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com>
+
+mQGiBDtiOuERBADWqtYvR/wqP9H99bmQ1GNpS8NL7YXmOUEdH9X/7KT3nrFBjacO
+XTJ2/rjnY1ItW6EwnenuFf0okgnf3ZgUai6Ajr4buxCMhpAzm2htOAaSnc3l/FZF
+mcdvpvKkpc4bf2qYC0j4RjKPvXExPdK3DbQnl7Pi5q0qvdaS0JUkYR5X/QCg/7fI
+uJKHVBqIveeAmZKpU8xYd60D/RvTll3dwVCWhs21a/AFFYKpA86A5jyq/yXwIeVr
+IKtKfxnvcjpmZAYIMddsBtVFjW/CyRm6KQZXRdWpXuLymP7+ppT2VlRLM3TqUxum
+4pASJdptk7fj3qzivyfaQ6/fAG3PyJcOe5hS7znLV2a0LX7PQBiPpUwqcjKQ2a2h
+LogQBACalpgAIdN1dfUbgOSm9gdsRb8wYIOKTFGpCWF17rMTMuSYTLAsm6mPdxrl
+FHn2wlROwiDFnzhEDFbPOHdC5XMD+tYdrWJaffJZKW7ZItOEz6OIh7gnmKpBcDsy
+WoJ9J7QRUiETHX3AbKOynSdk5kcgDWymCjSP6rE0M1PAiMVg1LQhU2NvdHQgQm9h
+ZyA8c2NvdHRfYm9hZ0Bsb3R1cy5jb20+iQBOBBARAgAOBQI7YjrhBAsDAgECGQEA
+CgkQQkPbOcGiXuYuqQCgxnuxkA2wfXf/qrhK9FDdhtG67MQAninm2rZVcTHqorBV
+KqUHMeC4VHaEuQINBDtiOuEQCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4
+INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3b
+zpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9G
+AFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67
+VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM
+2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICCADj1YHJzpg7
+J0z0zRmpzhmRfDZtzBZB+bjqXh1lkcJO9P6tqwEe9Jnhm+yMWKtfETeiNxyK7C5f
+qTATo9USqB2+VTfEr0Y+UivUcITB1UvChj02iPj7zhrW6A7ki5UHYzcK6y29Mw6K
+J39nKn7FPaxcqFEzksAGenT+yq0/sSCAydX0GyW6scEkkmdVsUskD5tb83KqNzKK
+wXm/iIkQHS5FyzQ7U/WGAKRMcQf14UkGrfPoeRbMfNmlp/B+Jwpfbn3bH47hgowA
+gdGcKQSAQhUgy6GDpsxWFTVyjiZNEBI2UxkoB7d8HzMRvme6tw51d59MSNK7X/Go
+GtA9P+IqA3UTiQBGBBgRAgAGBQI7YjrhAAoJEEJD2znBol7mw+MAn3pbgcaYV+KZ
+TLJszssOCpQLvJwpAKCOBhKSHNUJR8OXI4VhY2Arvmm33g==
+=genn
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGPfreeware 6.5.1 for non-commercial use <http://www.pgp.com>
+
+mQGiBDuOlFsRBADT2HtC2QiEuPHzAk6Oa95nupm5zPFdtUasGWnbNhj37JNjhNFA
+/iCAvloRHMG8pR9ltlLZA4ae4X2BhPPqk+Us7zjYY/DkF/+G+cTMwPdoakc5JxL5
+ZRoVntAYRH5bcmv9MdSbY4YDf2iqk8gCaFPjP9EQcw3l38kTbfVvGKIjNwCg/7fU
+aAHIiOYSH+eLMpF4LtuqQP0D/3DhtpvrALSpiF/rw3VnL1rnxcb2IZs9IL1U6bFK
+p0IbqQORSVO2+dYSWo4/Vt7aWBFVPf/yfn/elncVmo12wAzWy7sBnqv8QzfYAvyY
+UuOh2WUD4K1ALOy7VHNM1mMyvH4dDIAoOuqXMQBwJx0A+/zUUaUZZLojsWl366pF
+GHmlBACa5zXSZ0mUf5ScZqZyda7/kUsV+B5tKjEKuOY1d/hnI5e/9Z11EQIfqqxs
+UckzCii+mg8zSpSgWHtsSu5N90teLum98bEuhYNT1tB6Pc7yNWEfq3c3SPw8ZstX
+u1kTQrsQeTiPhmfTQ+RyFiv+ZjonEsETNQK8n7CU+N2diiX5d7QjTXlyaWFtIE1p
+ZHkgPG15cmlhbV9taWR5QGxvdHVzLmNvbT6JAE4EEBECAA4FAjuOlFsECwMCAQIZ
+AQAKCRDeziK2wcV9LzZ/AKCYT4SNAFyQB+tA93nYjRo+NMc12wCaAw6zfJ7j7pI4
+e7L2OA0niSd8vHe5Ag0EO46UWxAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65
+Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09
+jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brw
+v0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/ClWxiN
+jrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgHKXrK
+lQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIIANxxFjYo
+tUFTQpvEVHu1ZJhyZNySlR5EEDFemG/3AC67Mhv7ygHaeKP/oFzIixKmWllT7iKS
+SLjyS75rq7LpTzhasg2+suQPRnV8y2ATTLnlKWQVmZfVKY1RDiO4MWLik9laFTVY
+kEyFbKgF9w0LyeobsD7SU1J4D9IUOYmslq0m9rac0l+1ovNetdzIm3WSTB/gm/B2
+Nrz1z8urh4mf+RJwuO0to9fkSjE1KUcrE7nTiSD6A3eUaQC6S+Q5wEeiB3QN5f18
+giQuxna9Aet9J8tnMk+5iuh0QYKjNyXlyYD5B9ZF/4SXnQVDi6jAIC/Zzt/Yqzwo
+QX3NAtR8yY0WgASJAEYEGBECAAYFAjuOlFsACgkQ3s4itsHFfS+Q1QCg9ywbxv1n
+32glMqfIb9X7icWxYIEAoOGctrkwfA71hEB0S6zhT4UU3zx7
+=eDC+
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGiBDu47OwRBADe/cmSMZz/V8OF9KlVIij1Y66HuKRf9u8ht0JrVZf40BiA6ZF0
+IhXx44ELI1SWU2SqWQOrVR3RRVhHDbCiHGTGGLy8FgL5mhuC8vKRRkKNSzvgJKpD
+dCqRScL0UBWogvKj8plzuvz73rHDGJDdd4BYjOD02FW8wmBnWZO2FRQDhwCg/wwW
+HvcFM/O9dwoUPjdzc5AOteMEAN7vt3PzYpuhPEA21kGHd/wrn47BKGRiwYXv6b4S
+h6OCOWvj/JB9I/BnoeiDpt//1JRte/14JKf8IykuCQgzcZOvA2uuiMi0oWY7kBWe
+KDKzz63pFhlqncCzbxnOlIGUq82Y6ZGCrUvKErddOEdeHeCf2smgEvbxfED7lfKR
+noVTA/9mjXvtQf5tHlSA6/xErh5WVnvtK1voWQKK5CcRYccqoeD6hbYfwH2wHPte
+Rxvh+l8uyF+KTszM2cThA/BfVec01g3qeI1b4F1Izj9iLERxzvczB9QOQ11Ihhn1
+aC6CGDRT8pbrQddWKZy1mGoSJzRDcAGmHleY24+AK371+rKzlrQtSm9zZXBoIEtl
+c3NlbG1hbiA8am9zZXBoX2tlc3NlbG1hbkBsb3R1cy5jb20+iQBOBBARAgAOBQI7
+uOztBAsDAgECGQEACgkQss3trL7oYN6+QwCeNNwhvSTvw/OXKOAJ0wzpzUKc//AA
+oI+/TdbMVKrBDyEIR3fzS+PDYOq/uQINBDu47O0QCAD2Qle3CH8IF3KiutapQvMF
+6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ
++PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarT
+W56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY72
+88kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy
+1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7
+AAICB/4usO5A+4Z5Zqdv3IE/Ffaw7XD2+94Jjr9VLWBvlNPb8hwYaCQ8Sn8c+Vwq
+lrePG3vHQvwsaTVpLWgk7G/tqasTdecCGrBEc9YlB/9jBqNaUuWdT1RlfxzS96Z1
+ayhNSqHM5gF/6cTBedK95HF0++AdtG4Z+CxhX5COZliPcIeOH1mwYqP/OKcbfOmc
+NqsjEpKA81oMpu6RHlzdbvUEyr8JpwqlQnJBPZ6oRi7SUlsTidYvsTA2+ZXJWftr
+TXe/R4RdaoXnwhESiDAL1pJy1Hnw3N5RJGCA5RS3RLHa0wvF0YTCwdk7PJut7100
+bdLw57nTr1edcFUKrPrXHQaAI4KiiQBGBBgRAgAGBQI7uOztAAoJELLN7ay+6GDe
+6ioAn0mSgIVhoKS1/Umun8Let3+az+SMAJ0aDwtI+TswutMqImiCBg2XsQkOug==
+=FVde
+-----END PGP PUBLIC KEY BLOCK-----
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGiBDu46/8RBADy0Wm57RXcDu6sd+sza7pFOoYgWslo51LuSxoCVWZiBjgOhas0
+JZeN9pOZlW89yFG4b4U+IfHJ6S0jrl9dcY4jZbwGZOBHF/03Z1viZajIZQ8X13HT
+xVASnVFspxj/bvnkpALBaaeI75De9XjDJzJmxWpIMnvXqD6r3jA78h5J2wCg/xbc
+xzkV5R1+g5f0YQ5f6LcLK0kD/RWVFuIvrlxzJXZQ+7jduyZmBJat9CQs0U3hHFXq
+DIxQPfFsEn9B/kc/qRTFITTeu1JVmq9SYXhJ/YRP+5yza/bJy3HBs4X4xUSeSGR9
+lgMQ7CdI2RwCP2FiCt1yEZT0FG7V452P5u4GFsrUo0hzwPuF853OFbNMVA9lud7Q
+pKAdA/wN2J7vDQJzAI/Pnf1ilp3Etq5Mm0jm9F13qXY66a9GtqvcS/lZGwEwYb5J
+WHu2kUjDwRwc4rdVbmJS7r4OpuK4n4HSvkA+H7T2fGeAbSlmi2cf0Zj9PQc6nTTX
+xs9/mW+ducQoAWWqBsjYb9WTmETFI/v7XODgkFc8+4bGO79ysLQmSm9zZXBoIEtl
+c3NlbG1hbiA8amtlc3NlbG1AYXBhY2hlLm9yZz6JAE4EEBECAA4FAju46/8ECwMC
+AQIZAQAKCRBM03UrGv/D/h69AJkB04jEwgpZ3U/A3Vo1dfce8zM4/ACfRm4GEOJS
+8R/nsuNzZ8YoRD52DpK5Ag0EO7jr/xAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+2
+8W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZS
+Tz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI6
+1Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/Cl
+WxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgH
+KXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIIAMhL
+pfkBOHvfRhd/Dusekk1af4fMmH82fVhw82Q2+rY9CUNX1N/w0NLZ/AD1wKPugbDK
+QoVqgYaAP2rf0xETMFeZKlUhnPl0fXtfZSPWC8qIeiphac97g8Y4q/ZJL9jqZWiu
+lqQyArwniUUJ4L6obhZ0EjmSOy4etrWkIEv+1Z8Btw3+hn/XwdWRPzDkicMz7iL4
+scAsSLphu53tUhBdlwBDFdjesaKCRqy8bdR3AQf77Z1czNMLfYA7RS6zuoiblkD6
+GlABJDeQuxnBVJsuYpa+/zxlf4ol7P1rP5WohTN+hZWR9JI+MbqqG8EeyuYjI2Gj
+2/jT1kKqjGgVnqjtcb2JAEYEGBECAAYFAju46/8ACgkQTNN1Kxr/w/4tsACgyWj3
+/gI5CMj0KhDDxRXkxzCRP+AAnjY4cIvvgya56KB0IGmFgdgWZxUK
+=Ipr4
+-----END PGP PUBLIC KEY BLOCK-----
+
+Type Bits/KeyID    Date       User ID
+pub  2048/1AAC221B 2001/11/09 Joseph Kesselman <jo...@lotus.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGhBDvsN+kRBADjapawUAJpEXOp7xNASa4FKdXFx9rLOx45+GP4bdTS9QN/p7Vo
+t4v+Xd8PUhJYHkxyfe39rtWfVTj+JPFotldMaPJUCKixnxnTjehbSoyi5sNraRqj
+WvZFYFDOOmOEy139eBBFXNTGSH+3D8A0PMg9IhUGHYgGZwqhEgd+2yaBlQCg/94k
+idl+3UadWoI4CTOxD+iU0rMD+JUCsUvmFTP1HfJQekMSNN16WSzJF29QOr0JUm9q
+ebnJHvtaQ/GaZrVyVv0bbgC1XAXf36pqWJPldkvOOzxCm0z0JkKdbQ6+r4P3hDMF
+Ppj1kUfz2XmdbkLTROu0PhUwgE4p7IKQspmxcdYGbT8rPtSSxXVF0yvF/NItXcCJ
+KfMEANYbpDzbuzWNtwVTQReFoj5xwYxH1H0CMeXmV+yq0i7DRNU+uAe2DmWOc6om
+bl9K5yk/cf8DP93/0yOaJqmZ1EjhHwKkknucHbjcNcMrG5qozU3bUr4in8IK5XO0
+NDZEw6KZTLCyXWCl9kK/H7vr0ogtSeQo+rnMqM9Ggusl2yMCtC1Kb3NlcGggS2Vz
+c2VsbWFuIDxqb3NlcGhfa2Vzc2VsbWFuQGxvdHVzLmNvbT6JAE4EEBECAA4FAjvs
+N+kECwMCAQIZAQAKCRCVht3BGqwiGxyvAKCOQ+RkwNwxTbrfGj9y3Lm4mYjZ5wCg
+npZjPSr5wXU3YU+yi9TluXrMFWC5Ag0EO+w36RAIAPZCV7cIfwgXcqK61qlC8wXo
++VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D4
+9Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNb
+no2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbz
+ySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLW
+hsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsA
+AgIIAJJnaUDpUG1btIJUVkHLHOeBkm8uIcixAY1BrsoAm+HKW0DfvGZ0OA9RZawL
+ZwE0sWCuOuzQjbMVFjt3B76kK7YRiha+hlsAvbm5Ojnz5cmn+4JhT6fvh7Eh4xBR
+zCyQTOedNtegy0zkV24ddRqjz/zRDa3KJLagZrQFKU4+LXF5DpaTUVDR5xHxDlWg
+Ht2RDbEWVSYALxRjyHobzVZYr9CuhRy6QKRd5pm/fD+qkDtwHbFkrouH8Txegr3y
+zVVc+vKC0GNr1xaX8f0lUGSz2KHPRgqyMfEKGRYM+IWfr/gHeZnP2SUzGHsfYzoi
+6CJS6hPL/HyrPn+UbOmVo5uKNaqJAEYEGBECAAYFAjvsN+kACgkQlYbdwRqsIhuk
+fgCfco+vxnDUpU8cLscpZsPbk6J9p/MAn0VYo0g51AsO36+JJUak7IDWGFwb
+=pFGX
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+Sarah McNamara <mc...@ca.ibm.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGiBD0HV44RBADu4H3kzYmSoX2BZOkIio6h+LGD60EjDOGtGkFNh9pqd6aItRK9
+qpFishIK/1/1z+/nLVBfQDc+PSXR8jhZUzj/AGAdjmOtYkBwAWGz1jY08/x98xiV
+MzMlVYYdm0dHZAfrNKV7nAfLuFQ4X1Og4Hbmgv5HlnVllXEBcHUYWG7AFwCg/5Wu
+q6weARMULjVCQb7B/myiQJMD/itxWrfL0KibEBHzKEmzM3V6pJR7CT18+GO7aLFD
+Y0OtTqfcKdBlbvK2Ngyn6MFO/fgctGYsNB20Yg0dJH2oLPrgGAnSVqkgMh2VhUFH
+oc/6cyjBkFJMOgHQQAPY5c2MdVlMhBTCJcIMArY5rPQVS7q6D+947hftyHyhDwss
+e9b9BACUls7qRcUum7a0eygN6ninot6UlSh9TLEt7OERdIUegu3mbXazdGi5jvCr
+lXb1BxZPBIYP2tMve88s1uuRdDP20Ht7k3uG/CzMDlcIUisFrlAqNI7XtzE51jsF
+FOTt8NZFFCfqCGaVT/k4FB3wMWniK8HeXEiUuOB7vqdec2e1W7QkU2FyYWggTWNO
+YW1hcmEgPG1jbmFtYXJhQGNhLmlibS5jb20+iQBOBBARAgAOBQI9B1eOBAsDAgEC
+GQEACgkQDL/HgFBA4ORinwCeM0LEu1iHaSfg3O8W8XUO3soVB/8AoJCsL4P3H2YW
+jzcc4jWc0MtufUNTuQINBD0HV44QCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFu
+uUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89
+PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa
+8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsY
+jY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6
+ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICCAC5df43
+MJy9e/SkSdo/Vuu+3cUNcyTuOck0kFivwZKbYKbqJL1nfmT92Flgf4kzJUQTJ5QU
+2//sG2dyRtSZwFmb2vhY+68G8d9m4bkbIq799si7sK1LtSdC+6jr5qEnO9w+KcM1
+dxHhUXz5QSOLJgOL+FuF+NcvItUefl0tq5gwiGschyPljp4A2ulaEQn1s7ur6smZ
+9QuEyr+95qTqo7I4yAA6NJy9kws2IkYTVXQGsuFlRuXsX30Q9jzlNGZGifLlo6gq
+im6cQJgP+WeNHMUb25hV3cVL+wONSklZXIshoDm+zwAcjrbeBVin7g9R38YfhA7p
+Gr5ZXzTdnd6GDVWAiQBGBBgRAgAGBQI9B1eOAAoJEAy/x4BQQODk1rYAn34/Xv82
+CElwVpVsZeIkpD68gL1kAKCpGFmpS+W7aXKGVdlNubEulbVlHw==
+=+0VJ
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+Ilene Seelemann (ilene@ca.ibm.com)
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 6.5.8
+
+mQGiBD14yigRBAD4YG6RAKr364IFqsbD/3B02Nl28bkwVyWFxHA0y9Br5UvjyDGz
+sh6ZBQD7mPO2lpNGVj6ln0h5fxur+Nmi79j51LhdZamUGoJtx3GR8bMG3ps7OB+C
+FYobHFfBuaR+kvPioboPND0BKYqWktastyGi0Et5OSG2RbvMwBWwv7+ssQCg/y3A
+GTvsP70+0FPdsqYMIVbnvPcD/0I7huEjBXsF4/ZFple242zaDHiKcyJxaspiWYpk
+kHcHZB2fTUBroJtSvOE6in4LV9cBtr+qScyjYEKo7WXmTuvjPk9hGNg2/7IBhOAY
+pxEs/eMSRynPyX4dKsuQ/vbhRnJz5Uh2nG4l01oXIrIu3mLfbf0+njfAySbVZbUR
+Bm1fBADOLyw2OuOmVMu1DeFTZ2tyKyJQ+ALD3UtypphHDHcvejHC1Oq7heqxAk9p
+Ex/mYlIc3loddWiP6f4tQmdOqmvlhkZ1rGx1rNHMhRohRUPeY5WnRjg452hiaNtt
+ri3QnmX/w+3OQi9GcFzKr2GcSZzf429JArhAdMH4xoiK1lJTO7QiSWxlbmUgU2Vl
+bGVtYW5uIDxpbGVuZUBjYS5pYm0uY29tPokATgQQEQIADgUCPXjKKAQLAwIBAhkB
+AAoJEAaHFk5eFOHSfJsAnRLwJ3B/tgfUSAeXjgImzHITi93JAJ9kyIRfAu431G/0
+chT0OWCp/IqAnIkATAQQEQIADAUCPXjPQgUDDy00gAAKCRAy7BdZMKIdVZ5wAKDf
+j9ZVL8158YK7kdwpPsVMqJRldACfcYLyjzQh1rZIuAW/E/ddhwQ+eniJAEYEEBEC
+AAYFAj18qXUACgkQDL/HgFBA4ORX1gCg3WrNmHJrAc46PL2MdI1pqqVM+MYAoKFq
+cnqo7mczQM80Fvw58092GlFCuQINBD14yigQCAD2Qle3CH8IF3KiutapQvMF6PlT
+ETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZ
+X9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56N
+oKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kj
+wEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obE
+AxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAIC
+CADSzWYVAO56F2n81OvuEKHEDsWHVTa5F+pB2rJQdSbYsvuB6VzOXO+gttdBgaPp
+Kox0wj/z1T3ycr3UyP21sbyP6C4IqUM1sxmDDvtPmi+GP9EnVVWsjt3kAX4NgpG+
+/5RRjdmWvTXYwCyQsGUYmrxj38bTl3slaY2MXuzDrPN7jPLj0LQq2XsucxlBxne7
+VcjMcwWdZy83yrcD4JBACjuzZDYv5rk8562v4i7yIL0OGG42ApLeHTszKgIOnvEz
+chBQRtAIbnTZyakWAQbx8yluBQREcWro65iVZngjEMFFBZogCOHRo/ZRea+6Chb0
+GE4SHxWelDm1h29kRKFyNiSSiQBGBBgRAgAGBQI9eMooAAoJEAaHFk5eFOHSYScA
+ni92fvDPDNiD0HR5fYQkCcj9+AmCAJ9r2Ic4kOjE7g4LqGU0w/zr3IJ6wA==
+=g9hV
+
+-----END PGP PUBLIC KEY BLOCK-----
+
+Henry Zongaro (zongaro@ca.ibm.com)
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.2 (Cygwin)
+
+mQGiBD8cAJsRBADUrXrA/bCXXan4MTeyaYP/X7Jq2N4m0taDKcCWneTWVoXVISJD
+WRm5xI0qfiSMao4VCienFS6aEVDW/CtYy/oVN6faP4cDhfiauOSNVnkuprN5kNT5
+45gXxjfkNZZqQEHzNXeQbd03b2eYVNRqEPIMmbe02VNmYU2ucNoS3tX+wwCg37o6
+lECga3f3HAEbAoBGJWEQDz8D/1cYnr/3K08y5iRbx/fEImoSwDVmS2stl7YSHiFq
+y8OkkNv65ctxq1AQKWkd6l/TRLkaTxV6jRSNR9/UUSsKZ1WqYXdWIQlTHOyfyXA4
+9F7BYWVCJ2AorGOCUV2RhL34JOtxD17eWFW7jte9d3yjzwrW6zEgRjL3gn8mF6pm
+N0vwA/9/Yhw4xs3kJrd93wpYC6tjwr9OpKX9btjCvmYRs0tIaiHgW+pz4yXcp0be
+3JAKmOZLOpYgdXrzqoays2dIXHtPtnJ8xcusnuyafijXnpTugDLd2TTZwTE2PJqa
+T6wU6ucrxZoVye7tnCZC9WO4wwT1C34a2Bs8Kb9gdEztDDc64LQiSGVucnkgWm9u
+Z2FybyA8em9uZ2Fyb0BjYS5pYm0uY29tPohhBBMRAgAhBQI/HACbBQm6FuqABgsJ
+CAcDAgMVAgMDFgIBAh4BAheAAAoJEKtvTqlV3u1VQv0AnRtJiGiwnQ0xRr86VijM
+3jpvtRhZAJ42nopVLUX7MLPQAmquJr7vbJ51erkBDQQ/HACeEAQAktEiSKwmijNK
+y3LRnBfDcmnsflwaR6vq/hzTU4OaHFlv7TsOF8IEYuVtY6k35r1EKRFDDj3O2yxc
+HZ2nJXsfwc2r4vXZ5maLJKrwm/oqdpCQxIhewKty0mNcBmRhYfzH8FwDbJfDj8GQ
+3Mb+hoFng5IQz0TMn/+Xufi8hMPNubMAAwUD/1KqOj307Sw/I8xrukzKD28wephI
+BaHD0k/JrOE08hLy0AA2hJYtWON2ngFxsAMn+hyCaJ7jIf03lVzeWY/EFUsRiz6W
+SK2bgxCqztvFEfk6auQks9o8Qi7wSTdfGRvmgBEv1NIHricYGujpLMYL1/wcUmAb
+0cuNiuD+f6I9//mOiEwEGBECAAwFAj8cAJ4FCboW6oAACgkQq29OqVXe7VV5NwCd
+GnR3HK9tl6lDNkgg4e/iwX1+TGAAoNAyeTCMkju29VQvP09DXyqF92KN
+=+iYb
+-----END PGP PUBLIC KEY BLOCK-----
+
+Brian James Minchau <mi...@ca.ibm.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com>
+
+mQGiBD90tykRBAD8mc8/pJcCYJt7EBGh4M0x6FinAlR0QQsxgpf6sKVUsW01vnce
+1Sk2O5DfLCxTuTamstzMPGP9gqpIxL01qQO0ogarlQ8KLHtrb0x3ha2Ea32wnjux
+KsbWMYv88w3vyNmcPm4CwXePxWglBJxvuUtBl/8UfWX9tj51Gg1UIFkBMwCg/20T
+gSuvFLlcsBQIQ2z/lmyJsC8D/RP4QM4e36GyuMR+MVtamP2oq+kVsTgOWgMwbxBN
+pYVY9mtI43GIlQ3Nuj5MmgI2gh5w5KGkPxOUiBsbgGyKBpik2XET6uI+ESwxP/f3
+q4P5SsBg9Cnkfw1PRFp9rPrtsH+qRL0sVbPES7m5wgHFMO+iNFRvlgCj+n+a5wP9
+aZpVBADFiDoHukZKtwHkyeXf1ZAjDddYP0CMEU/+n6r2iQhGxsgB8YYxurCsNmWo
+ZHsEbFd9K0hiGW4wd8ehTnWhAOgF9haCg0ej+iXIsU26fSdup7XbhqWDwuBVG+oG
+fKrxWKn2M1Gq2/e7Y2uIQuUUZVLFWyfbz4srVKX4X+Usi2ZsWbQoQnJpYW4gSmFt
+ZXMgTWluY2hhdSA8bWluY2hhdUBjYS5pYm0uY29tPokATgQQEQIADgUCP3S3KQQL
+AwIBAhkBAAoJEEkBfzw7R979puQAoJz8iDTTk2RWVO7u3rTbiQLkKkDUAKDyteJj
+OIw78pLkcPnNBX5LsbtVzrkCDQQ/dLcqEAgA9kJXtwh/CBdyorrWqULzBej5UxE5
+T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/c
+dlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaCl
+cjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD
+8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZ
+yAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAggA
+17tSplmHTmGaV5C5Up5Imu37MGELNYUmoDtg82Acn3gftwKAl81HSx7Lr5ekJTZ2
+jdxX6k1TiJVvw0926Dm44xERqgbTnxJ0eSkvrzuM3WEdnSC4e34ostHcYSMjtXpI
+IwbhrAhCNJz8VHQsMPHbp5DCEESZracxHbOe1HGfV1qfomdM6X8k01fIa5Qmhi1B
+UUV8tdhr4yXL4fjzQYzI0PJQAVNxEKGrdPpnKedcEDKqdaGDD/SfFjo0Wp1Lg9wO
+pW6KnujtylZ/i2gj+oQtXgNXG1CDB2R4+573NyIWbTGCliDA0vr/MIOON3D0Ir1/
+4vtFBvRhTOefXJ2S7AQFl4kARgQYEQIABgUCP3S3KgAKCRBJAX88O0fe/XhoAKC6
+AUWyj+MEm1Uf+mxMLDI2IXiDZQCdEMKlwjNalb4/NBV3HatUuhOuFho=
+=LaXh
+-----END PGP PUBLIC KEY BLOCK-----
+
+Michael Glavassevich <mr...@ca.ibm.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.9 (Cygwin)
+
+mQINBEsh3ukBEADQTZRcZ+Fzyb4fWqhV5egIC8BTP54fjBcv9HKfC4IJxCaK5n/n
+GV9uuxv37LPNtZw9WxI8MLBJh0I3lu4PnrTvbcCVgP3NXlzFvdzY5n5FKQN62i+R
+6DbKehdd/QNlW0plxhVr3z6ZC2QH/EKRY0yJDcqT958Qz2BuPhXqYc+qlPtXAyPz
+2vE0aWsOZ6/7CJ7inLnh+0oVo1mJdtUYAVtoVwzQ6P7zcwvJDvwUaLUG9U0or46i
+46SNk2hTRK0q7KcFpEyv+6b1lbezZVWLN1tZjCITN8FHwf16cOMJF0XO/4fsCBQJ
+BCtZ9x5A6eCsDlWFCPd0BMDcPVDsB83AhujZo00g5H12oWVcxNUnlxSJ5ou7zRtq
+T4RJ7mpB7IM6g4zASJMgUkkuMnsQ9d+Bv8o9wC5lCDTEjN779ZxcctCmbBs6blgo
+4q9hYvAJYSkBOSfx+TRPuAYk9WK4elp8yq/XIrB1k7seKfTesROSf5Td5f988OpA
+jdyHhdp+HKstgktOkIvtDHQKgrsaKy5mHKqrWOA/mLL/Yw1p2IJkpBnGz8r/8mPD
+ecWrenRiT0E/us+D7tpHi84DrpfTS6niPaM4FgoigbCsdK/0T6IJ6uXVOPHdbpnL
+k5JDRYercy57tlaPwEHJITPe0FDP4zKJ+Jq28UYFRbPWDPcZJhPrUKA5IwARAQAB
+tD1NaWNoYWVsIEdsYXZhc3NldmljaCAoQ09ERSBTSUdOSU5HIEtFWSkgPG1yZ2xh
+dmFzQGFwYWNoZS5vcmc+iQI2BBMBAgAgBQJLId7pAhsDBgsJCAcDAgQVAggDBBYC
+AwECHgECF4AACgkQlEOAhCOKWlZifhAAhEkzKFOPkwJ58vy47jwMQa7/iAMs3gNN
+zNYcNcn6Vj3n/gTa5IlWrcjx2VnZviSW13lwry7DmudfO/qeU0JsJr4mk8Kwj5mh
+GFa5r/gt+dnOW/iFy8lEaJUI4vcXVZa4QK310d+Loat4ac0i0Nkioeiomix5RaQv
+A+I4m7qJpo6V112d/0/GCVJADwFm/5sbDhreUV4H8zIIkhH47YZKejEUArO3Teqn
+4Ym6ES/25qv/wiDSuuQOwIBymYIHCVam42VUHdbUHEjFZF7v5A1qjvdymZBtMGK2
+nfQCLUHpX6ACq+icwShLG4CDK4+zYdN0bTwI20VbLlFzFScjVga21Dqkdaw1bIvn
+cSmAXwrSKbFIdsdnsq9lnTqSszs5AyXQZ2Iq0iGk73L/CJemtgp9gwf3dp03WXQG
+5LCuTiRb/MWcgAPoG2KVEHRjE3KYGxEQ/OgIHxwDiDnvyvukjkpV/O/9A9LAga+5
+f7J22ih9g0ILbSbX0N9PWpvESD0fskAT6awlcvvyFacOm4tcYveMRESyT6/ZJWAm
+t/DlHcxLshX0RQZCETV/HO1C59twuds6MEbs3rTaFsKryz5Vo4/AQSsz46eDZze3
+XZ8y4FLHAkgrptHfoV39kyjJHmIMOAkx6S1YIvswTU0hF9SrxfrslyF9SwxYNuHt
+Q/M+Mf7tVQ4=
+=NDBw
+-----END PGP PUBLIC KEY BLOCK-----
+
+Gary David Gregory (Code signing key) <gg...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.11 (MingW32)
+
+mQENBE2kzuwBCACYV+G9yxNkSjAKSji0B5ipMGM74JAL1Ogtcu+993pLHHYsdXri
+WWXi37x9PLjeHxw63mN26SFyrbMJ4A8erLB03PDjw0DEzAwiu9P2vSvL/RFxGBbk
+cM0BTNXNR1rk8DpIzvXtejp8IHtD1qcDLTlJ8D0W3USebShDPo6NmMxTNuH0u99B
+WHCMAdSa34wsg0ZpffwQmRxeA+ebrf2ydKupGkeZsKjkLlaXNkTVp1ghn5ts/lvg
+KeHv1SJivWKCRmFlbPhBK4+mxSUSOPdoBNAfxA51QzZoPizSk0VbRz3YufYRVLFy
+9vqPSorDmYJhCvn3f6+A38FS/j8VE+8obQ2rABEBAAG0O0dhcnkgRGF2aWQgR3Jl
+Z29yeSAoQ29kZSBzaWduaW5nIGtleSkgPGdncmVnb3J5QGFwYWNoZS5vcmc+iQE4
+BBMBAgAiBQJNpM7sAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCG/cfi
+oRJiy2vXCACU6jW2+XIWuWBKSmeowBMxlUMJFSq7QjLt+o6B1ZYClbzBLDKcxlnS
+dF6v0jLhp71LozTde+HFI4/qIv6OO4UaGHin8Z1rNU/i5L07HkhLxcrbDoWhaSGD
+buRsWCv9ljm5GCXyK9s6Uj7d4af9mDWaGhNFJJFIs+yqOvTwffoaB7y+2a1YWStZ
+ZXDJ0KiHdY7xQ7bbYR/61MgvJslF1uX+u4jLTNmbU0tCXLtUrLd2VbJiAMFezqy6
+hV/ZxQLZoBPpr3FYhR2SIzNhQ30nj9AVcPgCCuLD49nx6Ad5CpcP8sTwb4aWk9GK
++Uu3Bfz4jTAvd9Q7TsRMt3NV+7sOGD4vuQENBE2kzuwBCACzeGpkd6X/xTfKDBWv
+XgHOOKIJ2pht9XmtZZKiIj7LIiSwvSds/ZkoZKxAm7AY+KPh8Xjf968FtoUBQJvH
+AG4rbowEqT7OOrJae2JcenH5qzaod7TpIPQVv+Ysz8I1wLlC6LzKRj1X99Hng6X+
+obsEasnPbmEEkuiZ/Sgi4vVC8SHkDmYt1Dx8jDgm53oUeWkEJO9LSI2zcrZhSgvg
+1xa4Q4gY5UUK7gE4LbmGCjFlATuuW/0sryxu8zxph15gkn4Nqgk0CPMSjesMYEGO
+sdDzfQXl2tXbt+Pe6mBoWh67MZ1v5zOq3EDtoSqDpWPxponAeaCuNDDFX44vGjfx
+GE0tABEBAAGJAR8EGAECAAkFAk2kzuwCGwwACgkQhv3H4qESYsvEMAf/VGyqIEcw
+4T2D3gZZ3ITkeoBevQdxBT/27xNvoWOZyGSzGYlRbRQrlo+uZsjfMc9MNvaSmxyy
+4gLVbcdvQr3PF//GxphJ98W8pk9l+M57jfyHnnCumn7MO4o9ed+WuigN5oeuNJ6B
+Iq3ff2o1DsrEvDChYOJEOeFuWxv+u7I2ABJJep7NbByM2n9PE8vlGU3zUBgWUBsk
+6jT+klKnEyHE76WzegPLz3jtElTuyB7jRhjyQJu1yiJEMbs2zH8aJGObi5f8Jum4
+tILZuEAdoI0M3c3VRq12cz/vLy+9VXa/s//8IsGn88kjyyYqOy8WJEjoOXFh++dp
+WiM7nZkgQcNi5A==
+=0UFs
+-----END PGP PUBLIC KEY BLOCK-----
+
+Mukul Gandhi (Code signing key) mukulg@apache.org
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2.2.6 (Windows)
+
+mQINBFrVrw4BEADaSqFLnW5IvKF7CaJXHpz2K94WTZr5vXg8sGE5r7XTi+91BqrU
+VCVanxkKs/dEy7O0QAnkGNaF6nT/deHZVU6FGTUVcj7GtDXd/8Upj5H5Yhkvf8nO
+U50U/W427OuLAbtKK06zUXQQq7jNUC5DEQNOA2amqKsSGCzeLticjOB/PIaFSAE7
+vLYPXdVZVA0/+c8tI98vt0LH/dC0FK8Q/YQLGLvDrrnkLqZ8Q/G27BYvJA0uBVvD
+7oC7uivXE87Qqy489DWI/zTciVgm8LwwOOgACVc0WzkHI9qX/Dmc27CjowCacW8O
++8VS1QVpq61L7y6vCg8dnL78Y3E+0MbvbVz7MpJKb9f7hxNHg6UwUVHweR+o2oXV
+75EMHQDN1vRWJ0gQgGOU479jECp1Iu52T2cL6qr5QDnmwb8G4LZUp3edJmlGQ+DO
+kSXJSSG+LtwdmwB/MwwyP6u7PKLKzE5Vn+zXyfJq5IHQmh9QlBatPcRrzFmKg4o1
+vI23xe09edfqSRPEfpLTa3h1CZPSOcu/93SteENslFKQ5SZIOyXK3RTz4jjJ6gMD
+W9FKGq5ntUTZHWiXJdxtr1cnt/SKJOsUK2OwTgD13EPYFonckbrPst4OSFFWUkba
+zIiENlbgkRKnQC06/bnBAfLC4h3W9AxxseVLVD7COB9fbJzGcLCsyo7mewARAQAB
+tDNNdWt1bCBHYW5kaGkgKENPREUgU0lHTklORyBLRVkpIDxtdWt1bGdAYXBhY2hl
+Lm9yZz6JAk4EEwEIADgWIQRNj7Vy+2rc/WnL/g17JYamteJcPQUCWtWvDgIbAwUL
+CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRB7JYamteJcPelTEAChRbuWaFsbJMs/
+qQNO0ALcqAKZvjnzB2Ne3qjYBT/3ptq86HSOBbuT1T/YAKUPN+ETR9Y7ib05x2qN
+pcLOhJJTNApNPcczNXKLokn4fojv70wFykRsm0OPp4/+gvtY9d/c7OPEIv1nLxOP
+zV7IJUX6JEXMuuUBAQ8XNFjy9ObRmQ3JTM3dvtsXNMqwpcsF3p4YvTTq7M3wKEJk
+J+d6DV48t0YNjDSmboZ1eb8NbBo6xGAUb42RuolJ8PtanDRjSUgCHPqSjn4x5F0H
+W/+kdoFybORCMCrVdKh1x4/8MLWLToC3aIaY1Dw51p9Li64NGHsxCBur1wlX/hAZ
+99Zy0GJcayuv9BPRG5lHraIwI0MhpYzmWL6xcOTOyWUOl8U5M/uaMkXlCS6WXdjz
+SrJx29y+1dH6mykRTjIQTBa+fsH7duJjiXlo9L8AYbXX6BiwImNiLHVdx6XHwEKP
+qDnQNuUFWuj4I2sU7Di0NNPpNemyDvGFlLd+472qD1K3M6ck0BMN+qp5n1gMcwUr
+X8cW40PBp5N14nghGiMVzA8QwcU62MCgu5Wo5yITKrZS3rf5vncRFNZ0yA49JqyF
+ypTWsJRE5iDIWYCvsQd0fICudxU5zRkaMlIUr8Yz+MjDITZ0YeDLrNDtyU+IE20W
+NpNXkhMSUHy6Vz772b3ejQt7Dg1Nd7kCDQRa1a8OARAA6tfcOXamaYMCf9bX6w9Q
+ggrmLmVJEUYbjMMlqg7jn1uatI1Fl0YPey1SJCKV52fc0OxX6+7iXlJhLc8q+tsx
+/9ojgbEetm85qlFBs7A2x1F/G4nXOi1LJbxDvytXonSn0YSKXpV7zLHnFz2/9KuK
+gi7YH41RmvYf/enLh2D8cZMApBfdaB+ZfiooMg7Flr9AHpqk5/UrV4vQZ1mkiiT+
+EXar5rygRP4DZKgBow6RWsJnDE2FKCh4UFzcjeQ0IGhh0iIldCT32jwJB8HDPamQ
++1WAiEzzCH0OOZ1yxiyVSXor+KFpmtnaJlWzUJMm/K6W/6aD9sikY1pA8bfOC0gz
+BU7/FZ76rGHgfDAL136lqUzQ54BXdmhM/hTv9VBmZ5JHbjm6xdF9Msr/QI7sRbms
+mgjqOF6IJk4vD7u4sIRYQlHJSsxJyBCu3sbKlHv4RZ/Pun6Sxj1fxO/NisQX3sdm
+pMwtZSCaBnx/Xlm/DRQKHhWhRcZ+4efeIWY1WcBvH/LgZYJhi5p9PxSLYvtjY83H
+iFH1k1v+fZk5c06iwYB3WQJkUfjXIWAPbSHuVuQLq2eZN1Slkd1BncSFYEEgtFl8
+I+UwmrqBTdONMRGkLjezrjnFa1uSBiEHnyyD6PMP3PPsFzqSEYh/E1Kna7jtaJky
+ZD5SpLdlvFnS4dYOzzGwhY8AEQEAAYkCNgQYAQgAIBYhBE2PtXL7atz9acv+DXsl
+hqa14lw9BQJa1a8OAhsMAAoJEHslhqa14lw9hOgQAJXFChQ394HeivVGTP3Lc0fY
+WOBceE9+8xWn6gjFf2SOVlSW7TlBrOGBwAzgeGDWKAP5Js/S2i8LlxTzWA0n7t1T
+zMEstkIjEEm5rkSdZ6GkSXQuQkEuiD9fVq8wMjdOKcgRzPq5CUYBFoOPm4r1ZMBc
+uMg4fFn3nIHLALdi8hjeJENsl7e9cf7pct9ZmMARgF9jFPPcZbpu7THNgheXnxYW
+bzYMNHVV9NkmZA1nJcGTLXao8i0dIQwFyg91cyTfc5iI7EQP+SXUACiOWlZ6GO2S
+EcY6CR4g4obg9lBzEPs2uiDRdxWLyD66gbP2XDGPiAsg8LM43Wxa4hDPjXHp9Pig
+tPfamxqdl13a8JvbS9hX6wvqS5dbrJfRuxejjGG+LI2cAcWSnT1gCQJWEnxXdzkh
+Y6E4aiI6xNw7Xek7rL7DJKe3bVcMcUKI7rLQJor6Gq9ESuTbe73eJdkWTK1cWSWs
+StTfzMWwq22VjOZCHz7p/h5zQvuj+oeeJb1wdMn65FjRp6VCmZFwUAphV4tS/Ihe
+vVJJKMjIMdUrqDwRhUlt2JLIcjQov00nJ6/SC5AAY5m9jB0LhIHNvXHXPrfxeNEH
+otQEdxhoQJS4bxa+pEztFxSkOyHLYya53TVZmGDPW1oMnghHKMA9FLvypQU3CsXM
+6CMlHiO/MH1/Ktz2a7NW
+=hMIE
+-----END PGP PUBLIC KEY BLOCK-----
+
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 00000000..994f9b10
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,1074 @@
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+The license above applies to this Apache Xalan release of:
+  Xalan-Java 2 - XSLT Processor
+  Xalan-Java 2 - Serializer
+  
+The license above also applies to the jar files
+xalan.jar and xsltc.jar - Xalan-Java 2 - XSLT Processor from 
+Source: http://xalan.apache.org/
+  
+The license above also applies to the jar file
+serializer.jar - Xalan-Java 2 - Serializer
+Source:  http://xalan.apache.org/
+Used by: Xalan-Java 2 and Xerces-Java 2
+
+The license above also applies to the jar file
+xercesImpl.jar - Xerces-Java 2 XML Parser.
+Source:	  http://xerces.apache.org/
+Used by:  Xalan-Java 2
+
+The license above also applies to the jar file
+xml-apis.jar - Xerces-Java 2 XML Parser.
+Source:   http://xerces.apache.org/
+Used by:  Xalan-Java 2 and release copy of Xerces-Java 2
+
+The license above also applies to the jar file
+bsf.jar - Beans Scripting Framework (BSF)
+Source:   https://commons.apache.org/proper/commons-bsf/
+Used by:  Xalan-Java 2's non Java extensions
+
+The license above also applies to the jar file
+commons-logging-1.2.jar - Apache Commons Logging
+Source:   https://commons.apache.org/proper/commons-logging/
+Used by:  Xalan-Java 2's non Java extensions
+
+
+
+
+The following license applies to the included files:
+  tools/ant.jar
+  tools/antRun
+  tools/antRun.bat
+Source:	 http://ant.apache.org/
+Used By: Xalan's build process: java/build.xml and test/build.xml
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+/*
+ * ============================================================================
+ *                   The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ *    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 
+ * 1. Redistributions of  source code must  retain the above copyright  notice,
+ *    this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include  the following  acknowledgment:  "This product includes  software
+ *    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+ *    Alternately, this  acknowledgment may  appear in the software itself,  if
+ *    and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Ant" and  "Apache Software Foundation"  must not be used to
+ *    endorse  or promote  products derived  from this  software without  prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ * 
+ * 5. Products  derived from this software may not  be called "Apache", nor may
+ *    "Apache" appear  in their name,  without prior written permission  of the
+ *    Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * This software  consists of voluntary contributions made  by many individuals
+ * on behalf of the  Apache Software Foundation.  For more  information  on the 
+ * Apache Software Foundation, please see <http://www.apache.org/>.
+ *
+ */
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license, Apache Software License, Version 1.1,
+applies to the included BCEL.jar from Apache Jakarta
+(Byte Code Engineering Library).
+Source:  http://jakarta.apache.org/bcel
+Used By: XSLTC component of xml-xalan/java
+
+The following license, Apache Software License, Version 1.1, 
+also applies to the included regexp.jar,
+jakarta-regexp-1.2.jar from Apache Jakarta.
+Source:  http://jakarta.apache.org/regexp
+Used By: BCEL.jar which is used by XSLTC component of xml-xalan/java
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+/*
+ *
+ * Copyright (c) 2001 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and 
+ *    "Apache BCEL" must not be used to endorse or promote products 
+ *    derived from this software without prior written permission. For 
+ *    written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    "Apache BCEL", nor may "Apache" appear in their name, without 
+ *    prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license applies to the DOM documentation
+for the org.w3c.dom.* packages:
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+W3C® DOCUMENT LICENSE
+http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231
+Public documents on the W3C site are provided by the copyright holders 
+under the following license. By using and/or copying this document, 
+or the W3C document from which this statement is linked, you (the licensee) 
+agree that you have read, understood, and will comply with the following 
+terms and conditions:
+
+Permission to copy, and distribute the contents of this document, or the 
+W3C document from which this statement is linked, in any medium for any 
+purpose and without fee or royalty is hereby granted, provided that you include 
+the following on ALL copies of the document, or portions thereof, that you use:
+
+1. A link or URL to the original W3C document. 
+2. The pre-existing copyright notice of the original author, or if it 
+   doesn't exist, a notice (hypertext is preferred, but a textual representation
+    is permitted) of the form: "Copyright © [$date-of-document] World Wide Web
+    Consortium, (Massachusetts Institute of Technology, European Research
+    Consortium for Informatics and Mathematics, Keio University). All Rights 
+    Reserved. http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231" 
+3. If it exists, the STATUS of the W3C document. 
+
+When space permits, inclusion of the full text of this NOTICE should be provided. 
+We request that authorship attribution be provided in any software, documents, 
+or other items or products that you create pursuant to the implementation of the
+contents of this document, or any portion thereof.
+
+No right to create modifications or derivatives of W3C documents is granted pursuant
+to this license. However, if additional requirements (documented in the Copyright FAQ)
+are satisfied, the right to create modifications or derivatives is sometimes granted
+by the W3C to individuals complying with those requirements.
+
+THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS
+OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;
+THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
+IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
+COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE
+OR IMPLEMENTATION OF THE CONTENTS THEREOF.
+
+The name and trademarks of copyright holders may NOT be used in advertising
+or publicity pertaining to this document or its contents without specific,
+written prior permission. Title to copyright in this document will at all
+times remain with copyright holders.
+
+
+----------------------------------------------------------------------------
+
+This formulation of W3C's notice and license became active on December 31 2002.
+This version removes the copyright ownership notice such that this license
+can be used with materials other than those owned by the W3C, moves information
+on style sheets, DTDs, and schemas to the Copyright FAQ, reflects that ERCIM
+is now a host of the W3C, includes references to this specific dated version
+of the license, and removes the ambiguous grant of "use". See the older
+formulation for the policy prior to this date. Please see our Copyright FAQ for
+common questions about using materials from our site, such as the translating
+or annotating specifications. Other questions about this notice can be directed
+to site-policy@w3.org.
+
+
+Joseph Reagle <mailto:site-policy@w3.org 
+Last revised by Reagle $Date: 2005-07-19 12:33:09 -0400 (Tue, 19 Jul 2005) $
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+
+The following license applies to the DOM software,
+for the org.w3c.dom.* packages in jar file xml-apis.jar:
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+W3C® SOFTWARE NOTICE AND LICENSE
+http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+This work (and included software, documentation such as READMEs,
+or other related items) is being provided by the copyright holders
+under the following license. By obtaining, using and/or copying this
+work, you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions.
+
+Permission to copy, modify, and distribute this software and its
+documentation, with or without modification, for any purpose and
+without fee or royalty is hereby granted, provided that you include
+the following on ALL copies of the software and documentation or
+portions thereof, including modifications:
+
+1. The full text of this NOTICE in a location viewable to users of the
+   redistributed or derivative work. 
+2. Any pre-existing intellectual property disclaimers, notices,
+   or terms and conditions. If none exist, the W3C Software Short Notice
+   should be included (hypertext is preferred, text is permitted) within
+   the body of any redistributed or derivative code. 
+3. Notice of any changes or modifications to the files, including the
+   date changes were made. (We recommend you provide URIs to the location
+   from which the code is derived.) 
+   
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
+NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE
+ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in advertising
+or publicity pertaining to the software without specific, written prior
+permission. Title to copyright in this software and any associated documentation
+will at all times remain with copyright holders.
+
+
+____________________________________
+
+This formulation of W3C's notice and license became active on December 31 2002.
+This version removes the copyright ownership notice such that this license can
+be used with materials other than those owned by the W3C, reflects that ERCIM
+is now a host of the W3C, includes references to this specific dated version
+of the license, and removes the ambiguous grant of "use". Otherwise, this
+version is the same as the previous version and is written so as to preserve
+the Free Software Foundation's assessment of GPL compatibility and OSI's
+certification under the Open Source Definition. Please see our Copyright FAQ
+for common questions about using materials from our site, including specific
+terms and conditions for packages like libwww, Amaya, and Jigsaw. Other
+questions about this notice can be directed to site-policy@w3.org.
+ 
+
+Joseph Reagle <mailto:site-policy@w3.org 
+Last revised by Reagle $Date: 2005-07-19 12:33:09 -0400 (Tue, 19 Jul 2005) $
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license applies to the SAX software,
+for the org.xml.sax.* packages in jar file xml-apis.jar:
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+This module, both source code and documentation, is in the Public Domain,
+and comes with NO WARRANTY. See http://www.saxproject.org for further information. 
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license applies to the jar file 
+java_cup.jar - LALR Parser Generator for Java(TM).
+Source:  http://www.cs.princeton.edu/~appel/modern/java/CUP
+Used By: XSLTC component of xml-xalan/java
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+CUP Parser Generator Copyright Notice, License, and Disclaimer
+
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian 
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, provided 
+that the above copyright notice appear in all copies and that both
+the copyright notice and this permission notice and warranty disclaimer 
+appear in supporting documentation, and that the names of the authors 
+or their employers not be used in advertising or publicity pertaining 
+to distribution of the software without specific, written prior permission. 
+
+The authors and their employers disclaim all warranties with regard to 
+this software, including all implied warranties of merchantability 
+and fitness. In no event shall the authors or their employers be liable 
+for any special, indirect or consequential damages or any damages 
+whatsoever resulting from loss of use, data or profits, whether in an action 
+of contract, negligence or other tortious action, arising out of or 
+in connection with the use or performance of this software. 
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license applies to the jar file runtime.jar - Component
+of JavaCup: LALR Parser Generator for Java(TM).
+Source:  http://www.cs.princeton.edu/~appel/modern/java/CUP
+Used By: XSLTC component of xml-xalan/java
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+CUP Parser Generator Copyright Notice, License, and Disclaimer
+(runtime.jar component)
+
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian 
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, provided 
+that the above copyright notice appear in all copies and that both
+the copyright notice and this permission notice and warranty disclaimer 
+appear in supporting documentation, and that the names of the authors 
+or their employers not be used in advertising or publicity pertaining 
+to distribution of the software without specific, written prior permission. 
+
+The authors and their employers disclaim all warranties with regard to 
+this software, including all implied warranties of merchantability 
+and fitness. In no event shall the authors or their employers be liable 
+for any special, indirect or consequential damages or any damages 
+whatsoever resulting from loss of use, data or profits, whether in an action 
+of contract, negligence or other tortious action, arising out of or 
+in connection with the use or performance of this software. 
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license applies to the JLEX jar file 
+JLex.jar - A Lexical Analyzer Generator for Java(TM).
+Source:  http://www.cs.princeton.edu/~appel/modern/java/JLex
+Used By: XSLTC component of xml-xalan/java
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
+
+Copyright 1996-2000 by Elliot Joel Berk and C. Scott Ananian 
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and 
+that both the copyright notice and this permission notice and 
+warranty disclaimer appear in supporting documentation, and that the 
+name of the authors or their employers not be used in advertising or 
+publicity pertaining to distribution of the software without specific, 
+written prior permission. 
+
+The authors and their employers disclaim all warranties with regard 
+to this software, including all implied warranties of merchantability and 
+fitness. In no event shall the authors or their employers be liable for any
+special, indirect or consequential damages or any damages whatsoever resulting 
+from loss of use, data or profits, whether in an action of contract, 
+negligence or other tortious action, arising out of or in connection
+with the use or performance of this software. 
+
+Java is a trademark of Sun Microsystems, Inc. References to the Java 
+programming language in relation to JLex are not meant to imply that 
+Sun endorses this product. 
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+
+
+
+
+
+
+The following license applies to the jar file 
+stylebook-1.0-b3_xalan-2.jar - Tool for generating Xalan documentation. 
+Integrated with Xalan-Java 2 and Xerces 2.
+Source:  http://svn.apache.org/viewvc/xml/stylebook/
+Used by: Xalan-Java 2, Xalan-C++
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+/*
+ * The Apache Software License, Version 1.1
+ *
+ *
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xalan", "Xerces", and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.apache.org.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+The following license applies to the jar file 
+rhino-1.7.14.jar - JavaScript implementation in Java
+Source:  https://github.com/mozilla/rhino
+Used by: Xalan-Java 2's non Java extensions
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+The majority of Rhino is licensed under the MPL 2.0:
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in 
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
diff --git a/NOTICE.txt b/NOTICE.txt
new file mode 100644
index 00000000..5c9ce77c
--- /dev/null
+++ b/NOTICE.txt
@@ -0,0 +1,85 @@
+   =========================================================================
+   ==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+   ==  Version 2.0, in this case for the Apache Xalan Java distribution.  ==
+   =========================================================================
+
+   Apache Xalan (Xalan XSLT processor)
+   Copyright 1999-2023 The Apache Software Foundation
+
+   Apache Xalan (Xalan serializer)
+   Copyright 1999-2012 The Apache Software Foundation
+
+   This product includes software developed at
+   The Apache Software Foundation (http://www.apache.org/).
+
+   =========================================================================
+   Portions of this software was originally based on the following:
+     - software copyright (c) 1999-2002, Lotus Development Corporation.,
+       http://www.lotus.com.
+     - software copyright (c) 2001-2002, Sun Microsystems.,
+       http://www.sun.com.
+     - software copyright (c) 2003, IBM Corporation., 
+       http://www.ibm.com.
+       
+   =========================================================================
+   The binary distribution package (ie. jars, samples and documentation) of
+   this product includes software developed by the following:
+       
+     - The Apache Software Foundation 
+         - Xerces Java - see LICENSE.txt 
+         - JAXP 1.3 APIs - see LICENSE.txt
+         - Bytecode Engineering Library - see LICENSE.txt
+         - Regular Expression - see LICENSE.txt
+       
+     - Scott Hudson, Frank Flannery, C. Scott Ananian 
+         - CUP Parser Generator runtime (javacup\runtime) - see LICENSE.txt 
+ 
+   ========================================================================= 
+   The source distribution package (ie. all source and tools required to build
+   Xalan Java) of this product includes software developed by the following:
+       
+     - The Apache Software Foundation
+         - Xerces Java - see LICENSE.txt 
+         - JAXP 1.3 APIs - see LICENSE.txt
+         - Bytecode Engineering Library - see LICENSE.txt
+         - Regular Expression - see LICENSE.txt
+         - Ant - see LICENSE.txt
+         - Stylebook doc tool - see LICENSE.txt
+         - Beans Scripting Framework (BSF) - see LICENSE.txt
+         - Commons Logging - see LICENSE.txt    
+       
+     - Elliot Joel Berk and C. Scott Ananian 
+         - Lexical Analyzer Generator (JLex) - see LICENSE.txt
+         
+     - Mozilla Foundation 
+         - Rhino: JavaScript implementation in Java - see LICENSE.txt         
+
+   =========================================================================       
+   Apache Xerces Java
+   Copyright 1999-2022 The Apache Software Foundation
+
+   This product includes software developed at
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Portions of Apache Xerces Java in xercesImpl.jar and xml-apis.jar
+   were originally based on the following:
+     - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
+     - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
+     - voluntary contributions made by Paul Eng on behalf of the 
+       Apache Software Foundation that were originally developed at iClick, Inc.,
+       software copyright (c) 1999.    
+
+   =========================================================================   
+   Apache xml-commons xml-apis (redistribution of xml-apis.jar)
+
+   Apache XML Commons
+   Copyright 2001-2003,2006 The Apache Software Foundation.
+
+   This product includes software developed at
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Portions of this software were originally based on the following:
+     - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
+     - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
+     - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org
+
diff --git a/README b/README
new file mode 100644
index 00000000..f8d13c31
--- /dev/null
+++ b/README
@@ -0,0 +1,137 @@
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+Copyright 1999-2023 The Apache Software Foundation
+
+Authors:
+   Gary Gregory <gg...@apache.org>
+   Joe Kesselman
+   Mukul Gandhi <mu...@apache.org>
+
+This file primarily, contains instructions to the person(s) who shall be making an Apache XalanJ 
+release for distribution, along with the instructions about how to test XalanJ release before 
+recommending the release for distribution.
+
+The details mentioned within this file, may also be used, by XalanJ source distribution users to 
+build and test XalanJ from the source distribution (except that, "git clone" steps as mentioned 
+within this file, might not be required to be run by XalanJ source distribution users).
+
+(1) Steps to build the XalanJ release
+
+1) Do a git clone, of the relevant XalanJ branches:
+
+git clone --single-branch https://gitbox.apache.org/repos/asf/xalan-java.git -b xalan-j_2_7_1_maint
+
+git clone https://gitbox.apache.org/repos/asf/xalan-test.git
+
+This creates two folders: xalan-java and xalan-test. These folders need to be parallel to
+each other, to be able to follow the XalanJ build and tests steps as described in this document,
+for making a XalanJ release for distribution.
+
+2) Set JAVA_HOME and ANT_HOME environment variables, for example on Windows:
+
+set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-8.0.352.8-hotspot\
+
+set ANT_HOME=C:\java\apache-ant-1.10.12
+
+3) Run the command, "build clean fulldist" from folder xalan-java.
+
+For XalanJ source distribution users, this command needs to be run from, the root 
+of the XalanJ source distribution folder (i.e, from the source distribution folder, 
+which contains folders "src", "tools" etc).
+
+(2) Steps to run the XalanJ tests, on XalanJ implementation
+
+Note that, for XalanJ source distribution users, XalanJ implementation shall be 
+produced (that XalanJ source distribution users, might want to test) by running 
+the build command "build clean fulldist" from the root of the XalanJ source 
+distribution folder.
+
+1) Go to the XalanJ tests repos's, local git clone folder:
+cd ..\xalan-test
+
+For XalanJ source distribution users, xalan-test folder is located at the root of the XalanJ 
+source distribution folder (i.e, parallel to folders "src", "tools" etc within the main XalanJ 
+codebase folder location), from where XalanJ source distribution users may run XalanJ 
+tests, by using the "build" script located at this folder location.
+
+2) Set JAVA_HOME and ANT_HOME environment variables, for example:
+
+set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-8.0.352.8-hotspot\
+
+set ANT_HOME=C:\java\apache-ant-1.10.12
+
+3) Run the command "build clean jar" from folder xalan-test. This produces
+the file testxsl.jar that acts as main XalanJ test driver, within folder xalan-test/java/build.
+
+4) Run the necessary XalanJ tests as follows,
+
+The tests described below within points 4.1, 4.2, 4.3 need to be run from folder xalan-test. 
+
+4.1 Run the ant target "smoketest", using following two commands in sequence shown below
+
+build extensions.classes
+
+build smoketest
+
+The final result of the command "build smoketest" should be following,
+
+smoketest-pass:
+     [echo]  [minitest] CONGRATULATIONS! The Smoketest passed!
+     
+4.2 Run the ant target "apitest", using following command
+
+build apitest
+
+The final result of the command "build apitest" should be following,
+
+apitest-pass-file-check:
+     [echo]  [minitest] CONGRATULATIONS! The api tests passed!     
+
+4.3 Run the ant target "conf.xsltc", using the following command 
+
+build conf.xsltc
+
+The final result of the command "build conf.xsltc" should be following,
+
+[echo]  [minitest] CONGRATULATIONS! The conf.xsltc tests passed!
+
+The XalanJ XSLTC processor, producing compiled translets, is known to have certain issues 
+as summarized by the following jira tickets, for the respective mentioned XalanJ conf.xsltc 
+test cases as mentioned below (users shall currently see, these xalanj test cases as failing, 
+within the test build conf.xsltc's output).
+
+1) output63         https://issues.apache.org/jira/browse/XALANJ-2642
+2) idkey49          https://issues.apache.org/jira/browse/XALANJ-2640
+3) math111          https://issues.apache.org/jira/browse/XALANJ-2641
+4) whitespace35     https://issues.apache.org/jira/browse/XALANJ-2643
+
+These XSLT transformation issues, do not exist with the XalanJ interpretive processor.
+     
+4.4 From folder xalan-test/tests/2.7.3_release, run the batch file 2.7.3_release.bat (for Windows) or 
+shell script 2.7.3_release.sh (for Linux) to run certain tests, specific to XalanJ 2.7.3 and higher versions.
+
+The final result of running this tests batch file/shell script (point 4.4), for these test's success should 
+be following,
+The xalanj integer truncation bug fix test passed!
+The test case passed [xalan_interpretive : jira_xalanj_2584]!
+The test case passed [xalan_xsltc : jira_xalanj_2584]!
+The test case passed [xalan_interpretive : jira_xalanj_2623]!
+The test case passed [xalan_xsltc : jira_xalanj_2623]!
+
+Users may read information within the batch file 2.7.3_release.bat or shell script 2.7.3_release.sh, to know 
+more about these tests (i.e, point 4.4). 
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..cdf53d2f
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,23 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+# Reporting a vulnerability
+
+If you believe you found a vulnerability in Apache XalanJ,
+please contact [the Apache Security Team](https://www.apache.org/security/).
diff --git a/Xalan2.7.0-REL_PLAN.html b/Xalan2.7.0-REL_PLAN.html
new file mode 100644
index 00000000..9b932aed
--- /dev/null
+++ b/Xalan2.7.0-REL_PLAN.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD><TITLE>Xerces 2.7.0 plan</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<STYLE type=text/css>BODY {
+	MARGIN: 2em 1em 2em 70px; COLOR: black; FONT-FAMILY: New Times Roman, serif; BACKGROUND-COLOR: white
+}
+</STYLE>
+
+<META content="MSHTML 6.00.2800.1226" name=GENERATOR></HEAD>
+<BODY>
+<H1>Xalan 2.7.0 Plan</H1>
+<P><B>Features:</B> 
+<UL>
+  <LI>JAXP 1.3 support</LI>
+  <LI>XML 1.1 support for stylesheets that are XML 1.1 documents</LI>
+  <LI>XML 1.1 support for XML documents being transformed</LI>
+  <LI>Serializer API to set the end of line sequence.</LI>
+  <LI>Other misc. features and improvements (time permitting)</LI>
+</UL>
+
+<P>
+<B>Target DCUT (code complete) date: July 28th, 2005 </B>
+</P>
+<P>
+<B>Target release date: Aug 4th, 2005 </B>
+</P>
+
+<H3>Development line items </H3>
+<TABLE border=2>
+  <TBODY>
+  <TR>
+    <TH style="TEXT-ALIGN: left">Line item </TH>
+    <TH style="TEXT-ALIGN: left">Volunteer </TH>
+    <TH style="TEXT-ALIGN: left">Sizing </TH>
+    <TH style="TEXT-ALIGN: left">Timeframe </TH>
+    <TH style="TEXT-ALIGN: left">Status </TH>
+  </TR>
+
+  <TR>
+    <TD><B>JAXP 1.3 support</B></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD></TD>
+  </TR>  
+    <TR>
+    <TD>DOMResult nextSibling support (XALANJ-2122)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>May 19, 2005 to May 20, 2005</TD>
+    <TD>Review needed</TD>
+  </TR> 
+    <TR>
+    <TD>messages (XALANJ-2123)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>May 19, 2005 to May 31, 2005</TD>
+    <TD>Review needed</TD>
+  </TR> 
+    <TR>
+    <TD>Documentation update (XALANJ-2124)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>May 19, 2005 to June 15, 2005</TD>
+    <TD>Review needed</TD>
+  </TR> 
+    <TR>
+    <TD>XPath API samples (XALANJ-2125)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>May 19, 2005 to May 24, 2005</TD>
+    <TD>Review needed</TD>
+  </TR>   
+    <TR>
+    <TD>XPathFunctionResolver sample (XALANJ-2126)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>May 19, 2005 to May 30, 2005</TD>
+    <TD>Review needed</TD>
+  </TR>   
+    <TR>
+    <TD>ErrorListener behavior (XALANJ-2134)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>May 19, 2005 to June 3, 2005</TD>
+    <TD>Review needed</TD>
+  </TR>  
+    <TR>
+    <TD>new API testcases (XALANJ-2135)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>June 2, 2005 to June 6, 2005</TD>
+    <TD>Review needed</TD>
+  </TR>  
+    <TR>
+    <TD>new secure feature (XALANJ-2136)</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>June 2, 2005 to June 8, 2005</TD>
+    <TD>Review needed</TD>
+  </TR>    
+  <TR>
+    <TD>TransformerFactory.setFeature(String, boolean) security support</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>.</TD>
+    <TD>.</TD>
+  </TR> 
+  <TR>
+    <TD>Proper JDK/JRE build-time and run-time dendancies</TD>
+    <TD>Morris Kwan</TD>
+    <TD>.</TD>
+    <TD>.</TD>
+    <TD>.</TD>
+  </TR>
+  <TR>
+    <TD><B>XML 1.1 support</B></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD></TD>
+  </TR>
+  <TR>
+    <TD>XML 1.1 stylesheets</TD>
+    <TD>Yash Talwar</TD>
+    <TD>.</TD>
+    <TD>.</TD>
+    <TD>Complete</TD>
+  </TR>
+  <TR>
+    <TD>XML 1.1 transform input docs</TD>
+    <TD>Yash Talwar</TD>
+    <TD>.</TD>
+    <TD>.</TD>
+    <TD>Complete</TD>
+  </TR>  
+  <TR>
+    <TD><B>Serializer API to set the end of line sequence</B></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD></TD>
+  </TR>  
+  <TR>
+    <TD>API</TD>
+    <TD>Brian Minchau</TD>
+    <TD>1 pd</TD>
+    <TD>May 30, 2005</TD>
+    <TD>Complete</TD>
+  </TR>
+  <TR>
+    <TD><B>DCUT </B></TD>
+    <TD></TD>
+    <TD></TD>
+    <TD>July 28th, 2005 </TD>
+    <TD></TD>
+  </TR>
+  <TR>
+    <TD><B>Review and fix severe defects reported in Bugzilla/Jira </B></TD>
+    <TD>All</TD>
+    <TD>1 pw</TD>
+    <TD>Week of July 28th, 2005 - Aug 4, 2005 </TD>
+    <TD>.</TD>
+  </TR>
+  <TR>
+    <TD><B>Build and publish Xalan 2.7.0</B> </TD>
+    <TD></TD>
+    <TD></TD>
+    <TD>Aug 4th, 2005 </TD>
+    <TD></TD>
+  </TR> 
+</TBODY>
+</TABLE>
+<H3>Candidate features and cleanup items (if time permits) </H3>
+<UL> 
+  <LI>...
+  <LI>... </LI>
+</UL>
+</BODY>
+</HTML>
diff --git a/build.bat b/build.bat
new file mode 100644
index 00000000..25c89b86
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,70 @@
+@echo off
+rem
+rem ==========================================================================
+rem = Licensed to the Apache Software Foundation (ASF) under one or more
+rem = contributor license agreements.  See the NOTICE file distributed with
+rem = this work for additional information regarding copyright ownership.
+rem = The ASF licenses this file to You under the Apache License, Version 2.0
+rem = (the "License"); you may not use this file except in compliance with
+rem = the License.  You may obtain a copy of the License at
+rem =
+rem =     http://www.apache.org/licenses/LICENSE-2.0
+rem =
+rem = Unless required by applicable law or agreed to in writing, software
+rem = distributed under the License is distributed on an "AS IS" BASIS,
+rem = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem = See the License for the specific language governing permissions and
+rem = limitations under the License.
+rem ==========================================================================
+rem
+rem     build.bat: Build Xalan-J 2.x using Ant
+rem     Author: XalanJ team
+rem 
+rem     Usage: build [ant-options] [targets]
+rem
+rem     Setup:
+rem        1) You must set JAVA_HOME
+rem
+rem        2) You can set ANT_HOME if you use your own Ant install
+
+echo.
+echo Xalan-J 2.x Build
+echo -----------------
+
+if "%JAVA_HOME%"=="" goto noJavaHome
+
+if exist "%JAVA_HOME%\lib\tools.jar" (
+   set _CLASSPATH=%JAVA_HOME%\lib\tools.jar
+)
+
+set _JAVACMD=%JAVA_HOME%\bin\java
+
+rem Default ANT_HOME to the one what user has set
+if not "%ANT_HOME%"=="" set _ANT_HOME=%ANT_HOME%
+if "%ANT_HOME%"=="" set _ANT_HOME=.
+
+if exist "%_ANT_HOME%\tools\ant.jar" (
+   set _ANT_JARS=%_ANT_HOME%\tools\ant.jar
+) else (
+   set _ANT_JARS=%_ANT_HOME%\lib\ant.jar;%_ANT_HOME%\lib\ant-launcher.jar
+)
+
+set _CLASSPATH=%_CLASSPATH%;%_ANT_JARS%
+
+set XERCES_ENDORSED_DIR_PATH=lib\endorsed
+
+@echo on
+"%_JAVACMD%" -mx1024m -Djava.endorsed.dirs=%XERCES_ENDORSED_DIR_PATH% -classpath "%_CLASSPATH%" org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
+@echo off
+
+goto end
+
+:noJavaHome
+echo Warning: JAVA_HOME environment variable is not set
+
+:end
+rem Cleanup environment variables
+set _JAVACMD=
+set _CLASSPATH=
+set _ANT_HOME=
+set _ANT_JARS=
diff --git a/build.sh b/build.sh
new file mode 100644
index 00000000..4f7ac97c
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+#=========================================================================
+# Copyright 2001-2023 The Apache Software Foundation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#=========================================================================
+#
+#	Name:   build.sh
+#	Author: Joe Kesselman
+#		Fresh port from Mukul Gandhi's revised build.bat.
+#		WARNING: This currently does not include the hooks needed
+#		to make the script compatable with cygwin (unix/Linux shell
+#		and commands ported to run under Windows). See 
+#		deprecated_build.sh to see how we handled the cygwin
+#		syntax differences back in 2001. These days, Windows users
+#		are more likely to use WSL, which simplifies matters.
+
+#	See:	build.xml
+
+#	Setup:
+#          1) You must set JAVA_HOME, for example,
+#	      $ export JAVA_HOME=/etc/alternatives/java_sdk
+
+#          2) You can set ANT_HOME if you use your own Ant install, for example,
+#	      $ export ANT_HOME=/usr/share/ant
+
+echo
+echo Xalan-J test automation build
+echo -----------------------------
+
+if [ "$1" = "-h" ]; then 
+    echo build.sh - executes Xalan Java-based test automation
+    echo   Usage:   build [target] [-D options]
+    echo   Example: build api -DtestClass=TransformerAPITest -Dqetest.loggingLevel=30
+    echo
+    echo You MUST export the JAVA_HOME environment variable to point to the JDK
+    echo You CAN export ANT_HOME environment variable if you use your own Ant install
+
+    exit 1
+fi
+
+if [ "$JAVA_HOME" = "" ]; then 
+    echo Warning: JAVA_HOME environment variable is not exported
+    echo You may have meant to set it to /etc/alternatives/java_sdk
+    exit 1
+fi
+
+if [ -f "$JAVA_HOME/lib/tools.jar" ]; then
+    CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
+fi
+
+JAVACMD=$JAVA_HOME/bin/java
+
+CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
+
+# Since Linux has scoped environments, we don't need explicit temporary vars.
+# Default is to use a copy of ant bundled with xalan-java.
+if [ "$ANT_HOME" = "" ]; then 
+    ANT_HOME=.
+fi
+
+# Check user's ANT_HOME to make sure it actually has what we need
+if [ -f "$ANT_HOME/tools/ant.jar" ]; then
+    ANT_JARS=$ANT_HOME/tools/ant.jar
+else
+    ANT_JARS=$ANT_HOME/lib/ant.jar:$ANT_HOME/lib/ant-launcher.jar
+fi
+
+CLASSPATH=$CLASSPATH:$ANT_JARS
+
+XERCES_ENDORSED_DIR_PATH=lib/endorsed
+
+XALAN_BUILD_DIR_PATH=../xalan-java/build:../build
+
+# Reminder: Note $* versus $@ distinction
+echo Running:$JAVACMD  -mx1024m -Djava.endorsed.dirs=$XERCES_ENDORSED_DIR_PATH -classpath "$CLASSPATH" org.apache.tools.ant.Main "$@"
+$JAVACMD  -mx1024m -Djava.endorsed.dirs=$XERCES_ENDORSED_DIR_PATH -classpath "$CLASSPATH" org.apache.tools.ant.Main "$@"
+
+echo "build.sh complete!"
diff --git a/build.xml b/build.xml
new file mode 100644
index 00000000..55c7d38e
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,1936 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+<!-- ===================================================================
+
+   Build file for Xalan-J 2.x - for use with the Jakarta Ant java build tool
+   
+Setup instructions: 
+   Before running an Ant build, you must
+   
+     - set the JAVA_HOME environment variable to the JDK root directory
+     - To build 'servlet' sample: Include Servlet SDK in your classpath
+     - To build docs/javadocs/xsltc: use JDK 1.2.x or higher
+   
+Build Instructions:   
+  To build, run
+    build.bat (win32) or build.sh (unix) [antoptions] [targets]
+  in the directory where this file is located; you should also be 
+  able to use an installation of Ant v1.4.1 or later.
+   
+  build -projecthelp  will show a list of supported targets.
+   
+  Developers: include a description="" attribute in all user-callable targets.
+        
+  If you build a target that depends on other targets, those other 
+  targets are *usually* created in the correct order; however a 
+  few of the larger targets like dist do not list all dependencies.
+
+Other Important Notes:
+- 'dist' produces a .tar file that works with GNU compatible tar 
+  programs, because that's what Ant does when it finds a path that's 
+  longer than 100 characters (like in our docs).  Sorry!
+  
+- External build maintainers: look for GUMP: comments; developers 
+  please use great caution when changing these lines!
+
+- Unusual build items: the docs and xsltc.compile targets leave 
+  cruft in the source areas; various clean targets get most of this.
+  
+Authors:
+  Shane Curcuru <sh...@lotus.com>
+  Don Leslie <do...@lotus.com>
+
+$Id$
+==================================================================== -->
+
+<project name="Xalan" default="jar" basedir=".">
+
+  <property name="name"                   value="xalan"/>
+  <property name="year"                   value="2023"/>
+  <property name="build.debug"            value="on"/>  
+  <property name="compiler.target"        value="1.8"/>
+  <property name="compiler.source"        value="1.8"/>
+  <property name="compiler.nowarn"        value="on"/>
+
+  <!-- Xalan Java version information -->
+  <property name="version.VERSION"        value="2"/>
+  <property name="version.RELEASE"        value="7"/>
+  <property name="version.DEVELOPER"      value=""/><!-- Set this to 'D' if a developer release; blank "" if maintenance release -->
+  <property name="version.MINOR"          value="3"/><!-- EITHER the developer release number, or a maintenance release number -->
+  <property name="version"                value="${version.VERSION}_${version.RELEASE}_${version.DEVELOPER}${version.MINOR}"/><!-- GUMP: version # of dist file -->
+  <property name="impl.version"           value="${version.VERSION}.${version.RELEASE}.${version.DEVELOPER}${version.MINOR}"/><!-- Used in jar task for filtering MANIFEST.MF file -->
+  
+  <!-- Xerces Java version information -->
+  <property name="parser.version.VERSION" value="2"/>
+  <property name="parser.version.RELEASE" value="12"/>
+  <property name="parser.version.MINOR"   value="2"/> 
+  
+  <!-- Xalan Java directories -->  
+  <!--  <property name="bin.dir"                value="./bin"/> -->
+  <property name="build.dir"              value="./build"/> 
+  <property name="lib.dir"                value="./lib"/>   
+  <property name="endorsed.dir"           value="${lib.dir}/endorsed"/>   
+  <property name="samples.dir"            value="./samples"/>   
+  <property name="src.dir"                value="./src"/>  
+  <property name="tools.dir"              value="./tools"/> 
+  <property name="xdocs.dir"              value="./xdocs"/>
+    
+  <property name="apachexml.reldir"       value="org/apache/xml"/>
+  <property name="serializer.reldir"      value="org/apache/xml/serializer"/>
+  <property name="xpath.reldir"           value="org/apache/xpath"/>
+  <property name="xalan.reldir"           value="org/apache/xalan"/>
+  <property name="domxpath.reldir"        value="org/w3c/dom/xpath"/>
+  <property name="xsltc.reldir"           value="${xalan.reldir}/xsltc"/>  
+
+  <!-- Jars to run Xalan Java (Interpretive, Compiled, or both) -->
+  <property name="xmlapis.jar.name"       value="xml-apis.jar"/>
+  <property name="xmlapis.jar"            value="${endorsed.dir}/${xmlapis.jar.name}"/>
+  <property name="parser.jar.name"        value="xercesImpl.jar"/>
+  <property name="parser.jar"             value="${endorsed.dir}/${parser.jar.name}"/>
+  <property name="bcel.jar.name"          value="bcel-6.7.0.jar"/>
+  <property name="bcel.jar"               value="${lib.dir}/${bcel.jar.name}"/>
+  <property name="runtime.jar.name"       value="runtime.jar"/>
+  <property name="runtime.jar"            value="${lib.dir}/${runtime.jar.name}"/>
+  <property name="regexp.jar.name"        value="regexp.jar"/>
+  <property name="regexp.jar"             value="${lib.dir}/${regexp.jar.name}"/>
+  
+  <!-- Jars to build Xalan Java (Interpretive, Compiled, or both) or build the docs -->
+  <property name="java_cup.jar.name"      value="java_cup.jar"/>
+  <property name="java_cup.jar"           value="${tools.dir}/${java_cup.jar.name}"/>
+  <property name="jlex.jar.name"          value="JLex.jar"/>
+  <property name="jlex.jar"               value="${tools.dir}/${jlex.jar.name}"/>  
+  <property name="stylebook.jar.name"     value="stylebook-1.0-b3_xalan-2.jar"/>
+  <property name="stylebook.jar"          value="${tools.dir}/${stylebook.jar.name}"/>
+  <property name="doclet.jar.name"        value="xalan2jdoc.jar"/>
+  <property name="doclet.jar"             value="${tools.dir}/${doclet.jar.name}"/>
+  <property name="taglet.jar.name"        value="xalan2jtaglet.jar"/>
+  <property name="taglet.jar"             value="${tools.dir}/${taglet.jar.name}"/>
+
+  <!-- Jars to build Xalan Java samples -->
+  <property name="servlet-api.jar.name"   value="servlet-api-2.5.jar"/>
+  <property name="servlet-api.jar"        value="${lib.dir}/${servlet-api.jar.name}"/>
+  <property name="javaee-api.jar.name"    value="javaee-api-5.0-2.jar"/>
+  <property name="javaee-api.jar"         value="${lib.dir}/${javaee-api.jar.name}"/>
+  <property name="brazil.jar.name"        value="brazil-2.1.jar"/>
+  <property name="brazil.jar"             value="${lib.dir}/${brazil.jar.name}"/>
+ 
+  <!-- Relative locations of source directories -->
+  <property name="manifest.mf"            value="./src/MANIFEST.MF"/>
+  <property name="manifest.xsltc.mf"      value="./src/manifest.xsltc"/>
+  <property name="manifest.xalan-interpretive.mf" value="./src/manifest.xalan-interpretive"/>  
+  <property name="XSLTInfo.props"         value="./src/org/apache/xalan/res/XSLTInfo.properties"/>  
+  <property name="generated.xpathparser"  value="${src.dir}/${xsltc.reldir}/compiler/XPathParser.java"/>
+  <property name="generated.xpathlexer"   value="${src.dir}/${xsltc.reldir}/compiler/XPathLexer.java"/>
+  <property name="generated.xpathsym"     value="${src.dir}/${xsltc.reldir}/compiler/sym.java"/>
+  
+  <!-- Build and distribution output areas -->
+  <property name="build.xalan.jar"              value="${build.dir}/${name}.jar"/><!-- GUMP: actual path/name of jar target output -->
+  <property name="build.xalan-unbundled.jar"    value="${build.dir}/${name}-unbundled.jar"/>
+  <property name="build.xalan-interpretive.jar" value="${build.dir}/${name}.jar"/>
+  <property name="build.xsltc.jar"              value="${build.dir}/xsltc.jar"/>
+  <property name="build.classes"                value="${build.dir}/classes"/>
+  <property name="build.docs"                   value="${build.dir}/docs"/>
+  <property name="build.samples"                value="${build.dir}/samples"/>
+  <property name="build.servlet"                value="${build.samples}/servlet"/>
+  <property name="build.apidocs"                value="${build.docs}/apidocs"/>
+  <property name="dist.pkg"                     value="${name}-j_${version}"/><!-- GUMP: actual path/name of dist target .tar.gz/.zip-->
+  <property name="dist.file"                    value="${dist.pkg}"/>
+  <property name="dist.dir"                     value="${build.dir}/${dist.pkg}"/>
+  
+  <!-- xml-commons sources (for Javadoc) -->                                                                        
+  <property name="xml-commons-srcs.tar.gz"      value="${src.dir}/xml-commons-external-1.3.02-src.tar.gz"/>
+  <property name="xml-commons-srcs.tar"         value="${build.dir}/xml-commons-external-1.3.02-src.tar"/>
+ 
+  <!-- Documentation and samples information  -->
+  <property name="Name-in-docs"                 value="Xalan-Java"/>
+  <property name="version.file"                 value="${xalan.reldir}/processor/XSLProcessorVersion.java"/>
+  
+  <property name="build.samples.jar"            value="${build.dir}/xalansamples.jar"/>
+  <property name="build.servlet.war"            value="${build.dir}/xalanservlet.war"/>
+  <property name="build.xsltc.applet.jar"       value="${build.dir}/xsltcapplet.jar"/>
+  <property name="build.xsltc.brazil.jar"       value="${build.dir}/xsltcbrazil.jar"/>
+  <property name="build.xsltc.ejb.jar"          value="${build.dir}/xsltcejb.jar"/>
+  <property name="build.xsltc.servlet.jar"      value="${build.dir}/xsltcservlet.jar"/>
+  
+  <property name="xdocs.book"                   value="${xdocs.dir}/sources/xalan-jlocal.xml"/>
+  <property name="xdocs.style"                  value="${xdocs.dir}/style"/>
+  <property name="xalanonly-styledocs"
+            value="dtd/xsl-html40s.dtd,dtd/spec.dtd,stylesheets/patterns.xsl,stylesheets/notice.xsl,stylesheets/spec.xsl,stylesheets/done.xsl,loaderdesign.xml,stylesheets/design2project.xsl,stylesheets/designdoc2html.xsl,stylesheets/xml2fo.xsl"/>
+  <property name="xalan.cmdline.class"          value="org.apache.xalan.xslt.Process"/>
+  <property name="doc.generator"                value="org.apache.stylebook.StyleBook"/>
+  <property name="doc.generator.styletargz"     value="${xdocs.dir}/xml-site-style.tar.gz"/>
+  <property name="doc.generator.styletar"       value="${xdocs.dir}/xml-site-style.tar"/>
+  
+  <property name="site.root"                    value="./xml-site"/>
+  <property name="site.dir"                     value="${site.root}/target/xalan-j"/>
+  <property name="site.book"                    value="${xdocs.dir}/sources/xalan-jsite.xml"/>
+  
+  <property name="xalan.apache.org.site.root"   value="./xalan-apache-org-site"/>
+  <property name="xalan.apache.org.site.dir"    value="${xalan.apache.org.site.root}/target/xalan-apache-org"/>
+  <property name="xalan.apache.org.site.book"   value="${xdocs.dir}/sources/xalan-apache-org-site.xml"/>  
+  
+  
+  <property name="xdocs.DONE.file"              value="${xdocs.dir}/sources/xalan/DONE"/>
+  <property name="xdocs.XSLTCDONE.file"         value="XSLTCDONE"/>
+  <property name="xdocs.XSLTCDONE.location"     value="${xdocs.dir}/sources/xalan/${xdocs.XSLTCDONE.file}"/>
+
+      
+  <!-- PROPERTIES TO COMPILE THE SERIALIZER  ======================================= -->  
+  <property name="serializer.src.dir"           value="./src"/>
+  <property name="serializer.build.dir"         value="./build"/> 
+  <property name="serializer.build.classes"     value="${serializer.build.dir}/serializer"/> 
+  
+  <!-- PROPERTIES TO MAKE THE SERIALIZER JAR ======================================= -->
+  <property name="serializer.manifest.basename" value="MANIFEST.SERIALIZER"/> 
+  <property name="serializer.manifest"          value="${serializer.src.dir}/${serializer.manifest.basename}"/>
+  <property name="serializer.impl.version"      value="${impl.version}"/>
+  <property name="serializer.java.version"      value="${java.version}"/>
+  <property name="serializer.java.vendor"       value="${java.vendor}"/>
+  <property name="serializer.jar.name"          value="serializer.jar"/>   
+  <property name="build.serializer.jar"         value="${serializer.build.dir}/${serializer.jar.name}"/> 
+  <property name="lib.serializer.jar"           value="./lib/${serializer.jar.name}"/>   
+ 
+  <!-- Class paths used in various targets -->
+  <path id="docs.class.path">
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${parser.jar}" />
+    <pathelement location="${bcel.jar}" />
+    <pathelement location="${runtime.jar}" />
+    <pathelement location="${stylebook.jar}" />
+    <pathelement location="${doclet.jar}" />
+    <pathelement location="${taglet.jar}" />
+    <pathelement location="${build.serializer.jar}" />
+    <pathelement location="${build.xalan.jar}" />
+  </path>
+  <path id="samples.class.path">
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />    
+    <pathelement location="${parser.jar}" />  
+    <pathelement location="${build.xalan.jar}" />
+  </path>
+  <path id="compile.class.path">
+    <!-- Ensure the selected parser.jar file is used to compile against -->
+    <pathelement location="${build.classes}" />
+    <pathelement location="${serializer.build.classes}" />    
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />
+    <pathelement location="${parser.jar}" />
+  </path>
+  <path id="xslt.boot.class.path">
+    <!-- Put this version of xalan in front of the jdk's for JDK 1.4+ -->
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />    
+    <pathelement location="${parser.jar}" />
+  	<pathelement path="${sun.boot.class.path}" />
+  </path>
+  <path id="compile.source.path">
+    <dirset dir="${src.dir}" includes="/org/apache/**" />
+  </path>
+
+  <!-- patternsets for source and binary distribution packages -->
+  <patternset id="bin-distro">
+    <include name="${dist.file}/LICENSE.txt"/>
+    <include name="${dist.file}/NOTICE.txt"/>
+    <include name="${dist.file}/readme.html"/>
+    <include name="${dist.file}/xalan.jar"/>
+    <!-- xsltc.jar will only be picked up if it has been built -->
+    <include name="${dist.file}/xsltc.jar"/>     
+    <include name="${dist.file}/${xmlapis.jar.name}"/>
+    <include name="${dist.file}/${parser.jar.name}"/>
+    <include name="${dist.file}/${serializer.jar.name}"/>
+    <include name="${dist.file}/samples/"/>    
+    <include name="${dist.file}/samples/xalansamples.jar"/>
+    <include name="${dist.file}/samples/xalanservlet.war"/>
+    <include name="${dist.file}/samples/xsltcapplet.jar"/>
+    <include name="${dist.file}/samples/xsltcbrazil.jar"/>
+    <include name="${dist.file}/samples/xsltcejb.jar"/>
+    <include name="${dist.file}/samples/xsltcservlet.jar"/>
+    <include name="${dist.file}/docs/"/>
+  </patternset>
+  <patternset id="bin-distro-nodocs">
+    <include name="${dist.file}/LICENSE.txt"/>
+    <include name="${dist.file}/NOTICE.txt"/>
+    <include name="${dist.file}/readme.html"/>
+    <include name="${dist.file}/xalan.jar"/>
+    <!-- xsltc.jar will only be picked up if it has been built -->
+    <include name="${dist.file}/xsltc.jar"/>    
+    <include name="${dist.file}/${xmlapis.jar.name}"/>
+    <include name="${dist.file}/${parser.jar.name}"/>
+    <include name="${dist.file}/${serializer.jar.name}"/>
+    <include name="${dist.file}/samples/"/>        
+    <include name="${dist.file}/samples/xalansamples.jar"/>
+    <include name="${dist.file}/samples/xalanservlet.war"/>
+    <include name="${dist.file}/samples/xsltcapplet.jar"/>
+    <include name="${dist.file}/samples/xsltcbrazil.jar"/>
+    <include name="${dist.file}/samples/xsltcejb.jar"/>
+    <include name="${dist.file}/samples/xsltcservlet.jar"/>
+  </patternset>
+  <patternset id="src-distro">
+    <include name="${dist.file}/LICENSE.txt"/>
+    <include name="${dist.file}/NOTICE.txt"/>      
+  	<include name="${dist.file}/*build.*"/>
+    <include name="${dist.file}/commits.xml"/>
+    <include name="${dist.file}/KEYS"/>
+    <include name="${dist.file}/readme.html"/>
+  	<include name="${dist.file}/README"/>
+    <include name="${dist.file}/lib/"/>
+    <include name="${dist.file}/tools/"/>
+    <include name="${dist.file}/samples/"/>
+    <exclude name="${dist.file}/samples/xalansamples.jar"/>
+    <exclude name="${dist.file}/samples/xalanservlet.war"/>
+    <exclude name="${dist.file}/samples/xsltcapplet.jar"/>
+    <exclude name="${dist.file}/samples/xsltcbrazil.jar"/>
+    <exclude name="${dist.file}/samples/xsltcejb.jar"/>
+    <exclude name="${dist.file}/samples/xsltcservlet.jar"/>    
+    <include name="${dist.file}/src/"/>  	
+    <include name="${dist.file}/xdocs/"/>
+  	<include name="${dist.file}/build_srcdist_xalan.xml"/>
+  	<include name="${dist.file}/build_srcdist_xalan_tests.xml"/>
+  	<include name="${dist.file}/xalan-test/"/>  	
+  </patternset>
+
+  <!-- XSLTC engine dependency .jar files -->    
+  <patternset id="xsltc-deps-jars">
+    <include name="${dist.file}/lib/${bcel.jar.name}"/>
+    <include name="${dist.file}/tools/${java_cup.jar.name}"/>
+    <include name="${dist.file}/tools/${jlex.jar.name}"/>
+    <include name="${dist.file}/lib/${runtime.jar.name}"/>
+    <include name="${dist.file}/lib/${regexp.jar.name}"/>
+  </patternset>
+
+  <!-- =================================================================== -->
+  <!-- Creates output build directories and doc prerequistes               -->
+  <!-- =================================================================== -->
+  <target name="prepare">
+    <echo message="Project:${Name-in-docs} version:${version} build.xml $Revision$"/>
+    <mkdir dir="${build.dir}"/>
+    <mkdir dir="${build.classes}"/>
+    <!-- Note that all testing-related targets *must* depend on 
+         this target, either directly or indirectly, to get 
+         the tests-available property set for them.
+    -->
+    <available file="${test.relpath}" property="tests-available" />
+    <available property="xerces.present" 
+      classname="org.apache.xerces.parsers.SAXParser"/>
+      
+    <!-- Update version information.  This copies the Version.src
+         file into Version.java, while replacing the following tokens
+    -->
+    <filter token="version.VERSION"          value="${version.VERSION}"/>  
+    <filter token="version.RELEASE"          value="${version.RELEASE}"/>
+    <filter token="version.MINOR"            value="${version.MINOR}"/>
+    <filter token="version.DEVELOPER"        value="${version.DEVELOPER}"/> 
+    <filter token="parser.version.VERSION"   value="${parser.version.VERSION}"/>  
+    <filter token="parser.version.RELEASE"   value="${parser.version.RELEASE}"/>
+    <filter token="parser.version.MINOR"     value="${parser.version.MINOR}"/>    
+    <copy tofile="${src.dir}/${xalan.reldir}/Version.java" file="${src.dir}/${xalan.reldir}/Version.src" filtering="true"/>
+    <copy tofile="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.java" file="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.src" filtering="true"/>    
+    <copy tofile="${src.dir}/${serializer.reldir}/Version.java" file="${src.dir}/${serializer.reldir}/Version.src" filtering="true"/>
+    <copy tofile="${xdocs.dir}/sources/entities.ent" file="${xdocs.dir}/sources/entities.src" filtering="true"/>
+  </target>
+
+  <!-- Must depend on jar since we use Xalan to process xml files -->
+  <target name="prepare.docs" depends="jar,prepare.docs.nojardepends"/>
+  
+  <target name="prepare.docs.nojardepends">  
+    <mkdir dir="${build.docs}"/> 
+    <mkdir dir="${build.apidocs}"/>
+
+    <gunzip src="${doc.generator.styletargz}"/>
+    <untar src="${doc.generator.styletar}" dest="${xdocs.dir}"/>
+    <delete file="${doc.generator.styletar}"/>
+
+    <!-- We use a sed script to extract Xalan-Java 2 commits from the repository into commits.xml
+         The following operation transforms commits.xml (just including source code commits) and 
+         puts the result in xdocs/sources/xalan for inclusion in the readme.xml -->      
+    <echo message="Transform commits.xml and put the result in ${xdocs.dir}"/>
+    <java fork="yes" classname="${xalan.cmdline.class}" >
+      <classpath refid="docs.class.path" />
+      <arg line="-in commits.xml -xsl ${xdocs.style}/stylesheets/done.xsl -out ${xdocs.DONE.file} -param xsltcdone ${xdocs.XSLTCDONE.file}"/>
+    </java>
+    <echo message="Generate Xalan-J 2.x design document"/>
+    <java fork="yes" classname="${doc.generator}" >
+      <classpath refid="docs.class.path" />
+      <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=./build/docs/design/
+                 ./xdocs/sources/xalandesign.xml ./xdocs/style"/>
+    </java>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compile the DTM implementation and xml utilities                    -->
+  <!-- =================================================================== -->
+    <target name="xml.compile" depends="prepare,serializer.jar">
+    <echo message="Compiling DTM implementation and utilities" />
+    <javac srcdir="${src.dir}"
+           destdir="${build.classes}"
+           debug="${build.debug}" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <include name="${apachexml.reldir}/**/*.java" />
+      <!-- exclude the serializer -->
+      <exclude name="${serializer.reldir}/**/*.java" />      
+      <!-- Exclude file that depends upon presence of Xerces in build path -->
+      <exclude name="**/IncrementalSAXSource_Xerces.java" 
+        unless="xerces.present"	 />
+      <classpath refid="compile.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
+    <copy todir="${build.classes}">
+      <fileset dir="${src.dir}" 
+          includes="${apachexml.reldir}/**/*.properties" 
+          excludes="${serializer.reldir}/**/*.properties"
+      />
+    </copy>  
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Compile the Xalan interpreter source tree                           -->
+  <!-- =================================================================== -->
+  <target name="xalan-interpretive.compile" depends="xml.compile"
+    description="Compile the Xalan interpretive classes (skips XSLTC)" >
+    <echo message="Compiling Xalan interpretive classes" />
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           debug="${build.debug}" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <include name="${xpath.reldir}/**/*.java" />
+      <include name="${domxpath.reldir}/**/*.java" />
+      <include name="${xalan.reldir}/**/*.java" />
+      <exclude name="${xsltc.reldir}/**/*.java" />
+      <classpath refid="compile.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+      <sourcepath refid="compile.source.path" />
+    </javac>
+    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
+    <copy todir="${build.classes}">
+      <fileset dir="${src.dir}" includes="**/*.properties,META-INF/services/*" excludes="**/XSLTInfo.properties"/>
+    </copy>  
+    <filter token="impl.version" value="${impl.version}"/>
+    <copy todir="${build.classes}/org/apache/xalan/res" file="${XSLTInfo.props}" filtering="true"/>
+  </target>
+  
+  <!-- Compile all java sources (Xalan interpretive and XSLTC) -->
+  <target name="compile" depends="xalan-interpretive.compile,xsltc.compile"
+    description="Compile all java source files (Xalan interpretive + XSLTC)" >
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compile just the XSLTC compiler portion                             -->
+  <!-- =================================================================== -->
+  <path id="xsltc.class.path">
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />
+    <pathelement location="${bcel.jar}" />
+    <pathelement location="${jlex.jar}" />
+    <pathelement location="${java_cup.jar}" />
+    <pathelement location="${runtime.jar}" />
+    <!-- build.classes needed for 
+         org.apache.xalan.xsltc.util.JavaCupRedirect -->
+    <pathelement location="${build.classes}" />
+  </path>
+
+  <!-- Attempt to determine dependency info for generated sources -->
+  <target name="xsltc.prepare" depends="prepare" >
+    <!-- The first step compiles the utils directory, which includes 
+         a special wrapper for the xsltc.codegen / java_cup step next. -->
+    <echo message="Compiling XSLTC utilities"/>
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           includes="${xsltc.reldir}/util/**/*.java"
+           debug="${build.debug}"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="xsltc.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+    <!-- These tricky uptodate statements hopefully determine if we 
+         actually need to generate the java_cup and jlex files 
+         in the two sub-targets below
+    -->
+    <uptodate property="xsltc.java_cup.not_needed" targetfile="${generated.xpathparser}" >
+      <srcfiles dir="${src.dir}/${xsltc.reldir}/compiler" includes="xpath.cup" />
+    </uptodate>
+
+    <uptodate property="xsltc.jlex.not_needed" targetfile="${generated.xpathlexer}" >
+      <srcfiles dir="${src.dir}/${xsltc.reldir}/compiler" includes="xpath.lex" />
+    </uptodate> 
+    
+    <!-- Determine whether the support jars are already expanded -->
+    <available file="${build.classes}/org/apache/bcel"     type="dir" property="xsltc.bcel_jar.not_needed" />
+    <available file="${build.classes}/JLex"                type="dir" property="xsltc.jlex_jar.not_needed" />
+    <available file="${build.classes}/java_cup/Main.class" type="file" property="xsltc.java_cup_jar.not_needed" />
+    <available file="${build.classes}/java_cup/runtime"    type="dir" property="xsltc.runtime_jar.not_needed" />
+    <available file="${build.classes}/org/apache/regexp"   type="dir" property="xsltc.regexp_jar.not_needed" />
+  </target>
+
+  <!-- Generate the XPath parser sources for xsltc if needed -->
+  <target name="xsltc.java_cup" depends="xsltc.prepare" unless="xsltc.java_cup.not_needed">
+    <!-- The second step generates sym.java and XPathParser.java. -->
+    <echo message="java_cup preparsing"/>
+    <java fork="yes" failonerror="true" 
+       classname="org.apache.xalan.xsltc.util.JavaCupRedirect" >
+      <classpath refid="xsltc.class.path" />
+      <!-- need to bootclasspath java_cup for JDKs that include JavaCupRedirect -->
+      <jvmarg value="-Xbootclasspath/p:${java_cup.jar}${path.separator}${runtime.jar}"/>
+      <!-- We're using JavaCupRedirect to call the java_cup application -->
+      <arg line="-parser XPathParser -expect 0 
+         -stdin ${src.dir}/${xsltc.reldir}/compiler/xpath.cup"/>
+    </java>
+    <echo message="java_cup move output files"/>
+    <move file="XPathParser.java" tofile="${generated.xpathparser}"/>
+    <move file="sym.java" tofile="${generated.xpathsym}"/>
+  </target>
+  
+  <!-- Generate the XPath lexer sources for xsltc if needed -->
+  <target name="xsltc.jlex" depends="xsltc.java_cup" unless="xsltc.jlex.not_needed">
+    <!-- The third step generates XPathLexer.java. The lexiographical analyser
+    has to be generated after sym.java, so order is important. -->
+    <echo message="JLex preparsing"/>
+    <java fork="yes" failonerror="true" classname="JLex.Main" >
+      <classpath refid="xsltc.class.path" />
+      <arg line="-static ${src.dir}/${xsltc.reldir}/compiler/xpath.lex"/>
+    </java>
+    <echo message="JLex move output file"/>
+    <move file="${src.dir}/${xsltc.reldir}/compiler/xpath.lex.java" tofile="${generated.xpathlexer}"/>
+  </target>
+
+  <!-- Compile the main XSLTC classes -->
+  <target name="xsltc.compile" depends="xsltc.java_cup,xsltc.jlex,xml.compile"
+    description="Compile just the XSLTC classes" >
+    <echo message="Compiling remaining XSLTC classes"/>
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           includes="${xsltc.reldir}/**/*.java"
+           excludes="${serializer.reldir}/**/*.java"
+           debug="${build.debug}"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}"> 
+      <classpath refid="xsltc.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+  </target>
+
+  <!-- Compile just the XSLTC classes w/o JLex, JCup recompilation -->
+  <target name="xsltc.fcompile" depends="xml.compile"
+    description="Compile just the XSLTC classes w/o JLex, JCup recompilation" >
+    <echo message="Compiling remaining XSLTC classes"/>
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           includes="${xsltc.reldir}/**/*.java"
+           debug="${build.debug}"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="xsltc.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+  </target>
+
+  <!-- Jar up the XSLTC classes w/o the support jars -->
+  <target name="xsltc.unbundledjar" depends="xsltc.compile"
+    description="Jar just the xsltc.jar file" >
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>        
+    <copy todir="${build.dir}" file="${manifest.xsltc.mf}" filtering="true"/>
+    <jar jarfile="${build.xsltc.jar}" manifest="${build.dir}/manifest.xsltc" basedir="${build.classes}" >
+      <patternset><!-- relative to jar/@basedir -->
+        <include name="org/apache/xml/**" />
+        <include name="${xsltc.reldir}/**/*" />
+        <exclude name="org/apache/xalan/xsltc/util/JavaCupRedirect*" />
+      </patternset>
+    </jar>
+  </target>
+
+  <!-- Copy license and readme files for XSLTC support jars -->
+  <target name="xsltc.copy-licenses" depends="xsltc.prepare">
+  </target>
+
+  <!-- A parametrized target which is used to copy and expand a XSLTC support jar -->
+  <target name="xsltc.copy-deps-jar" unless="${param_unless}">
+    <!-- copy the jar file to the build/classes directory -->
+    <copy todir="${build.classes}" file="${lib.dir}/${param_jar_name}"/>
+    
+    <!-- unjar the jar file -->
+    <unjar src="${build.classes}/${param_jar_name}" dest="${build.classes}" />
+    
+    <!-- remove the jar file -->
+    <delete file="${build.classes}/${param_jar_name}" />
+  </target>
+  
+  <!-- Copy and expand the XSLTC support jars if needed -->
+  <target name="xsltc.copy-deps-jars" depends="xsltc.copy-licenses">
+    <echo message="Copying XSLTC support jars" />
+    <!-- copy the 3rd party support jar files -->
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.bcel_jar.not_needed" />
+      <param name="param_jar_name" value="${bcel.jar.name}" />
+    </antcall>
+
+<!-- We don't need to package the JLex or java_cup jars in the xalan.jar.
+     These are only required for building XSLTC, not for using XSLTC.
+     
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.jlex_jar.not_needed" />
+      <param name="param_jar_name" value="${jlex.jar.name}" />
+    </antcall>
+
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.java_cup_jar.not_needed" />
+      <param name="param_jar_name" value="${java_cup.jar.name}" />
+    </antcall>
+-->
+
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.runtime_jar.not_needed" />
+      <param name="param_jar_name" value="${runtime.jar.name}" />
+    </antcall>
+
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.regexp_jar.not_needed" />
+      <param name="param_jar_name" value="${regexp.jar.name}" />
+    </antcall>
+    
+    <!-- remove the old META-INF/MANIFEST.MF file -->
+    <delete file="${build.classes}/META-INF/MANIFEST.MF" quiet="true"/>  
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates the xsltc jar including all support jars                    -->
+  <!-- =================================================================== -->
+  <target name="xsltc.jar" depends="xsltc.compile,xsltc.copy-deps-jars"
+     description="Jar xsltc,xml,BCEL,JLex,java_cup,runtime and jakarta regexp">
+
+    <!-- create new META-INF dir w/ transformer factory default -->
+    <!-- GTM: comment this out so that bundled xsltc.jar does not have
+         service provider default until further notice 2/20/2002
+    <mkdir dir="${build.dir}/xsltctmp/META-INF"/>
+    <mkdir dir="${build.dir}/xsltctmp/META-INF/services"/>
+    <copy todir="${build.dir}/xsltctmp/META-INF/services"
+      file="${src.dir}/${xsltc.reldir}/javax.xml.transform.TransformerFactory"
+    />
+    -->
+
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.xsltc.mf}" filtering="true"/>
+    
+    <!-- make bundled jar named xsltc.jar -->
+    <jar jarfile="${build.dir}/xsltc.jar" manifest="${build.dir}/manifest.xsltc" >
+      <fileset dir="${build.classes}">
+        <include name="org/apache/xalan/xsltc/**"/>
+        <exclude name="org/apache/xalan/xsltc/util/JavaCupRedirect*" />
+      </fileset>
+      <fileset dir="${build.classes}" includes="org/apache/xml/**" 
+                                      excludes="${serializer.reldir}/**" />
+      <fileset dir="${build.classes}" includes="org/apache/bcel/**" />
+      <fileset dir="${build.classes}" includes="JLex/**" />
+      <fileset dir="${build.classes}" includes="java_cup/**" />
+      <fileset dir="${build.classes}" includes="org/apache/regexp/**" />
+    </jar>
+
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the xalan interpretive jar                                  -->
+  <!-- =================================================================== -->
+  <target name="xalan-interpretive.jar" depends="xalan-interpretive.compile"
+    description="Jar up everything in Xalan interpretive (without XSLTC)" >
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.xalan-interpretive.mf}" filtering="true"/>
+    <jar jarfile="${build.xalan-interpretive.jar}" manifest="${build.dir}/manifest.xalan-interpretive" basedir="${build.classes}" >
+      <patternset><!-- relative to jar/@basedir -->
+        <include name="${apachexml.reldir}/**/*" />
+        <include name="${xpath.reldir}/**/*" />
+        <include name="${xalan.reldir}/**/*" />
+        <include name="${domxpath.reldir}/**/*" />        
+        <include name="META-INF/services/*" />
+        <exclude name="${xsltc.reldir}/**/*" />
+        <exclude name="${serializer.reldir}/**/*" />
+      </patternset>
+    </jar>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the xalan unbundled jar (Xalan interpretive + XSLTC -       -->
+  <!-- support jars                                                        -->
+  <!-- =================================================================== -->
+  <target name="unbundledjar" depends="xalan-interpretive.compile,xsltc.compile"
+    description="Jar up Xalan and XSLTC, without the XSLTC dependencies" >
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.mf}" filtering="true"/>
+    <jar jarfile="${build.xalan-unbundled.jar}" manifest="${build.dir}/MANIFEST.MF" basedir="${build.classes}" >
+      <patternset>
+        <include name="${apachexml.reldir}/**/*" />
+        <include name="${xpath.reldir}/**/*" />
+        <include name="${xalan.reldir}/**/*" />
+        <include name="META-INF/services/*" />
+        <exclude name="${xsltc.reldir}/util/JavaCupRedirect*" />
+        <exclude name="${serializer.reldir}/**/*.*" />
+      </patternset>    
+    </jar>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates one big xalan jar (Xalan interpretive + XSLTC + support jars) -->
+  <!-- =================================================================== -->
+  <target name="jar" depends="xalan-interpretive.compile,xsltc.compile,xsltc.copy-deps-jars"
+    description="Jar up everything (Xalan, XSLTC and XSLTC dependencies)" >
+    
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.mf}" filtering="true"/>
+    
+    <!-- make bundled jar named xalan.jar -->
+    <jar jarfile="${build.xalan.jar}" manifest="${build.dir}/MANIFEST.MF"
+         basedir="${build.classes}" >
+       <patternset>
+         <exclude name="${xsltc.reldir}/util/JavaCupRedirect*" />
+         <exclude name="${serializer.reldir}/**/*" />
+       </patternset>
+    </jar>  
+ 
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Default all target simply Creates the xalan JAR                     -->
+  <!-- =================================================================== -->
+  <target name="all" depends="serializer.jar,jar"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="Redirect to jar target; please provide input on desired functionality of this target"/>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Compiles the samples (servlet excluded) and jars the class files    -->  
+  <!-- =================================================================== -->
+  <target name="samples" depends="jar,samples.nojardepends,xsltc.samples"/>
+
+  <target name="samples.nojardepends" depends="xsltc.samples.nojardepends"
+    description="Compile and jar the samples (except servlet)" >
+    <property name="exclude" value="*.xml,*.xsl,*.txt,*.html,*.properties,*.out"/>
+    <mkdir dir="${build.samples}"/>
+    <!-- Since the samples are packageless, they must be compiled separately. -->   
+    <javac srcdir="${samples.dir}/SimpleTransform" 
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/UseStylesheetPI"   
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/UseStylesheetParam" 
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/SAX2SAX"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/DOM2DOM"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/Pipe"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/UseXMLFilters"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/Trace"   
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/ApplyXPath"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>
+    <javac srcdir="${samples.dir}/ApplyXPathDOM"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>             
+    <javac srcdir="${samples.dir}/trax"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/extensions"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/Validate"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac> 
+    <javac srcdir="${samples.dir}/TransformThread"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>
+    <javac srcdir="${samples.dir}/XPathAPI"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>               
+    <jar jarfile="${build.samples.jar}" basedir="${build.samples}"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles all samples that require extra standard components in      -->
+  <!-- order to compile.                                                   -->
+  <!-- =================================================================== -->
+  <target name="extra.std.samples"
+          depends="servlet,xsltc.applet,xsltc.ejb,xsltc.servlet"/>
+          
+  <target name="extra.std.samples.nojardepends"
+          depends="servlet.jardepends,xsltc.applet.nojardepends,
+                   xsltc.ejb.jardepends,xsltc.servlet.jardepends"/>
+
+  <!-- =================================================================== -->
+  <!-- Compiles all samples that require extra non-standard components in  -->
+  <!-- order to compile.                                                   -->
+  <!-- =================================================================== -->
+  <target name="extra.nonstd.samples" depends="xsltc.brazil"/>
+  
+  <target name="extra.nonstd.samples.nojardepends" depends="xsltc.brazil.jardepends"/>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the sample servlet and jars the class files.               --> 
+  <!-- The javax.servlet and javax.servlet.http packages                   -->
+  <!-- must be on the classpath                                            -->
+  <!-- =================================================================== -->
+  <target name="servlet" depends="jar,servlet.jardepends"/>
+
+  <target name="servlet.jardepends"
+    description="Compile and jar the servlet samples in xalanservlet.war" >
+     <echo message="To compile the sample servlets, javax.servlet and javax.servlet.http must be on the classpath"/>   
+     <mkdir dir="${build.servlet}"/>
+     <mkdir dir="${build.servlet}/WEB-INF/classes/servlet"/>
+     <mkdir dir="${build.servlet}/WEB-INF/lib"/>
+     <javac srcdir="${samples.dir}/servlet"
+            destdir="${build.servlet}/WEB-INF/classes"
+            debug="${build.debug}"
+            bootclasspathref="xslt.boot.class.path" 
+     	    target="${compiler.target}" source="${compiler.source}" 
+     	    nowarn="${compiler.nowarn}">
+        <classpath refid="samples.class.path" />
+        <classpath location="${servlet-api.jar}" />
+     </javac>           
+      <copy todir="${build.servlet}/WEB-INF/classes/servlet">
+        <fileset dir="${samples.dir}/servlet" includes="media.properties"/>
+      </copy>  		         
+      <copy todir="${build.servlet}/WEB-INF">
+        <fileset dir="${samples.dir}/servlet" includes="web.xml"/>
+      </copy>
+      <copy todir="${build.servlet}">
+        <fileset dir="${samples.dir}/servlet" 
+        		includes="birds.xml, birds.xsl, booklist1.xsl, 
+        		booklist2.xsl, catalog.xml, fooparam.xml, fooparam.xsl, jspSample.jsp"/>
+      </copy>
+      <copy todir="${build.servlet}/WEB-INF/lib">
+      	<fileset dir="${lib.dir}" includes="${parser.jar.name}, ${xmlapis.jar.name}"/>
+      </copy>
+      <copy file="${build.xalan.jar}" todir="${build.servlet}/WEB-INF/lib" />
+    <jar jarfile="${build.servlet.war}" 
+         basedir="${build.servlet}" 
+         includes="**"/>
+  </target>
+ 
+  <!-- =================================================================== -->
+  <!-- Compiles (does not jar) the translet samples.                       -->
+  <!-- For time being, classes are generated in place.                     -->
+  <!-- To run these samples, add xsltc.jar, runtime.jar, bcel.jar,         -->
+  <!-- and java_cup.jar (all in the bin directory) to the classpath        --> 
+  <!--                                                                     -->
+  <!-- When we have straightened out classpath issues,                     -->
+  <!-- add samples in CompiledApplet, CompiledBrazil, CompiledEJB and      -->
+  <!-- CompiledServlet.                                                    -->
+  <!-- =================================================================== -->
+  <target name="xsltc.samples" depends="jar,xsltc.samples.nojardepends"/>
+
+  <target name="xsltc.samples.nojardepends">
+    <mkdir dir="${build.samples}"/>
+    <javac srcdir="${samples.dir}/translets"
+           classpath="${build.xalan.jar}" 
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+  	       target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}"/>
+    <javac srcdir="${samples.dir}/CompiledJAXP"
+           destdir="${build.samples}" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+  	       target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC applet example and jars the class files.         --> 
+  <!-- =================================================================== -->
+  <target name="xsltc.applet" depends="jar,xsltc.applet.nojardepends"/>
+
+  <target name="xsltc.applet.nojardepends">
+    <mkdir dir="${build.samples}/CompiledApplet"/>
+    <javac srcdir="${samples.dir}/CompiledApplet"
+           destdir="${build.samples}/CompiledApplet" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}"/>
+    <jar jarfile="${build.xsltc.applet.jar}"
+         basedir="${build.samples}/CompiledApplet"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC brazil example and jars the class files.         --> 
+  <!-- =================================================================== -->
+  <target name="xsltc.brazil" depends="jar,xsltc.brazil.jardepends"/>
+
+  <target name="xsltc.brazil.jardepends">
+    <mkdir dir="${build.samples}/CompiledBrazil"/>
+    <javac srcdir="${samples.dir}/CompiledBrazil"
+           destdir="${build.samples}/CompiledBrazil" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+    	<classpath location="${brazil.jar}"/>
+  	</javac>
+    <jar jarfile="${build.xsltc.brazil.jar}"
+         basedir="${build.samples}/CompiledBrazil"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC EJB example and jars the class files.            --> 
+  <!-- ejb.jar must be on the classpath to compile this sample.            -->
+  <!-- EJB 2.0 can be found at http://java.sun.com/products/ejb/docs.html  -->
+  <!-- =================================================================== -->
+  <target name="xsltc.ejb" depends="jar,xsltc.ejb.jardepends"/>
+
+  <target name="xsltc.ejb.jardepends">
+    <mkdir dir="${build.samples}/CompiledEJB"/>
+    <javac srcdir="${samples.dir}/CompiledEJB"
+           destdir="${build.samples}/CompiledEJB" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+    	<classpath location="${javaee-api.jar}"/>
+    </javac>
+    <jar jarfile="${build.xsltc.ejb.jar}"
+         basedir="${build.samples}/CompiledEJB"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC servlet example and jars the class files.        --> 
+  <!-- =================================================================== -->
+  <target name="xsltc.servlet" depends="jar,xsltc.servlet.jardepends" />
+
+  <target name="xsltc.servlet.jardepends">
+    <mkdir dir="${build.samples}/CompiledServlet"/>
+    <javac srcdir="${samples.dir}/CompiledServlet"
+           destdir="${build.samples}/CompiledServlet" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   classpath="${build.xalan.jar}:${servlet-api.jar}" 
+    	   nowarn="${compiler.nowarn}">
+    </javac>
+    <jar jarfile="${build.xsltc.servlet.jar}"
+         basedir="${build.samples}/CompiledServlet"
+         includes="*.class"/>
+  </target>
+
+ 
+  <!-- =================================================================== -->
+  <!-- Generate HTML docs                                                  -->
+  <!-- =================================================================== -->
+  <target name="docs" depends="jar,docs.nojardepends,xsltc.docs"/>
+  
+  <target name="docs.nojardepends" depends="prepare.docs.nojardepends,autodocs"  
+    description="Build the documentation (overview, readme, etc.)" >
+    <echo message="docs is human-usable target with dependencies"/>  
+  </target>
+  
+  <target name="autodocs">
+    <echo message="autodocs is for automated build process, without dependencies"/>   
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+       <arg line="targetDirectory=${build.docs} ${xdocs.book} ${xdocs.style}"/>
+    </java>	 
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the API documentation                                       -->
+  <!-- =================================================================== -->
+  <target name="javadocs" depends="jar,javadocs.nojardepends"/>
+  
+  <target name="javadocs.nojardepends" depends="prepare.docs.nojardepends,autojavadocs"
+    description="Build the Javadocs for Xalan 2.x and jaxp sources" >
+    <echo message="javadocs is human-usable target with dependencies"/> 
+    
+    <!-- Expand jaxp sources (JAXP 1.1, DOM 2, and SAX 2) into source tree for 
+         inclusion in the Javadoc. -->           
+    <!-- Note this is into the src area.-->                                          
+    <gunzip src="${xml-commons-srcs.tar.gz}" dest="${build.dir}" />                                                                         
+    <untar src="${xml-commons-srcs.tar}" 
+           dest="${src.dir}">
+       <patternset>
+         <include name="**.java"/>
+       </patternset>
+    </untar>
+           
+    <delete file="${xml-commons-srcs.tar}"/>
+         
+    <antcall target="autojavadocs"/>
+     
+    <!-- remove the jaxp sources -->
+    <delete dir="${src.dir}/javax" />
+    <delete dir="${src.dir}/org/w3c" />
+    <delete dir="${src.dir}/org/xml" />
+    <delete dir="${src.dir}/org/apache/xmlcommons" />
+    <delete file="${src.dir}/manifest.commons" />
+         
+  </target>
+
+  <target name="autojavadocs" 
+          depends="autojavadocs-1.4-or-higher-if,autojavadocs-non1.4-or-higher-if">
+    <echo message="autojavadocs is for automated build process, without dependencies"/>
+  </target>
+
+  <target name="check-using-java-1.4-or-higher">
+    <condition property="using-java-1.4-or-higher">
+      <not>
+          <or>
+            <equals arg1="${ant.java.version}" arg2="1.1"/>
+            <equals arg1="${ant.java.version}" arg2="1.2"/>
+            <equals arg1="${ant.java.version}" arg2="1.3"/>
+          </or>
+      </not>
+    </condition>
+  </target>
+
+  <target name="autojavadocs-1.4-or-higher-if" if="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="autojavadocs-1.4-or-higher"/>
+  </target>
+
+  <target name="autojavadocs-non1.4-or-higher-if" unless="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="autojavadocs-non1.4-or-higher"/>
+  </target>
+
+  <target name="autojavadocs-1.4-or-higher">
+    
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         additionalparam="-breakiterator"
+         destdir="${build.apidocs}"
+         public="true"
+         sourcepath="${src.dir}"
+         overview="${src.dir}/javadocOverview.html"
+         packagenames="org.apache.*,org.xml.*,org.w3c.*,javax.xml.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} ${impl.version}" 
+         doctitle="${Name-in-docs} ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <taglet name="xalan2jtaglet.XSLUsageTag" path="${taglet.jar}"/>
+          <group title="Transformations API for XML (TrAX)" packages="javax.xml.transform*"/>
+          <group title="Java API for XML Parsing" packages="javax.xml.parsers"/>
+          <group title="Xalan Core"
+                 packages="org.apache.xalan.processor:org.apache.xalan.templates:org.apache.xalan.transformer"/>
+          <group title="XPath" packages="org.apache.xpath*"/>
+          <group title="Document Table Model (DTM)" packages="org.apache.xml.dtm*"/>          
+          <group title="Utilities" packages="org.apache.xml.utils*"/>
+          <group title="Xalan Other" packages="org.apache.xalan.client:org:org.apache.xalan.extensions:org.apache.xalan.res:org.apache.xalan.stree:org.apache.xalan.trace:org.apache.xalan.xslt"/>
+          <group title="Xalan Extensions" packages="org.apache.xalan.lib*"/>
+          <group title="Serializers" packages="org.apache.xml.serialize*, org.apache.xalan.serialize"/>
+          <group title="SAX 2" packages="org.xml.sax*"/>
+          <group title="DOM 2" packages="org.w3c.dom*"/>
+          <group title="XSLTC Core"
+                 packages="org.apache.xalan.xsltc*"/>
+    </javadoc>
+  </target>
+
+  <target name="autojavadocs-non1.4-or-higher">
+      
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         public="true"
+         sourcepath="${src.dir}"
+         overview="${src.dir}/javadocOverview.html"
+         packagenames="org.apache.*,org.xml.*,org.w3c.*,javax.xml.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} ${impl.version}" 
+         doctitle="${Name-in-docs} ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <doclet name="xalanjdoc.Standard" path="${doclet.jar}">
+            <param name="-d" value="${build.apidocs}"/>
+          </doclet>
+          <group title="Transformations API for XML (TrAX)" packages="javax.xml.transform*"/>
+          <group title="Java API for XML Parsing" packages="javax.xml.parsers"/>
+          <group title="Xalan Core"
+                 packages="org.apache.xalan.processor:org.apache.xalan.templates:org.apache.xalan.transformer"/>
+          <group title="XPath" packages="org.apache.xpath*"/>
+          <group title="Document Table Model (DTM)" packages="org.apache.xml.dtm*"/>          
+          <group title="Utilities" packages="org.apache.xml.utils*"/>
+          <group title="Xalan Other" packages="org.apache.xalan.client:org:org.apache.xalan.extensions:org.apache.xalan.res:org.apache.xalan.stree:org.apache.xalan.trace:org.apache.xalan.xslt"/>
+          <group title="Xalan Extensions" packages="org.apache.xalan.lib*"/>
+          <group title="Serializers" packages="org.apache.xml.serialize*, org.apache.xalan.serialize"/>
+          <group title="SAX 2" packages="org.xml.sax*"/>
+          <group title="DOM 2" packages="org.w3c.dom*"/>
+          <group title="XSLTC Core"
+                 packages="org.apache.xalan.xsltc*"/>
+    </javadoc>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Various targets to clean the build tree                             -->
+  <!-- =================================================================== -->
+  <target name="distclean" depends="clean"
+    description="Clean everything, including dist/jar/docs/xsltc.*" >
+    <delete dir="${dist.dir}"/>
+  </target>
+
+  <target name="clean" depends="xsltc.clean"
+    description="Clean the ${build.dir} tree and doc outputs" >
+    <delete dir="${build.dir}"/>
+    <delete dir="${site.root}"/>
+    <delete dir="${xalan.apache.org.site.root}"/>    
+    <delete quiet="true">
+      <fileset dir="${xdocs.style}" excludes="${xalanonly-styledocs}"/>
+    </delete>
+    <delete file="${xdocs.DONE.file}"/>
+    <delete file="${xdocs.XSLTCDONE.location}"/>
+    <delete file="${src.dir}/${xalan.reldir}/Version.java"/>
+    <delete file="${src.dir}/${serializer.reldir}/Version.java"/>
+    <delete file="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.java"/>
+    <delete file="${xdocs.dir}/sources/entities.ent"/>       
+    <!-- Also delete files expanded from ${xml-commons-srcs.tar.gz}-->
+    <delete dir="${src.dir}/javax" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/org/xml" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/org/w3c" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/xdocs/style/graphics" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/xdocs/style/resources" includeEmptyDirs="true" quiet="true"/>    
+  </target>
+ 
+  <target name="xsltc.clean"
+    description="Clean miscellaneous generated sources from xsltc.compile" >
+    <delete file="${generated.xpathparser}" />
+    <delete file="${generated.xpathsym}" />
+    <delete file="${generated.xpathlexer}" />
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Install/Uninstall targets - not currently applicable                -->
+  <!-- =================================================================== -->
+  <target name="install"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="install target currently not supported in ${Name-in-docs}; try jar or dist instead"/>
+  </target>
+  <target name="uninstall"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="uninstall target currently not supported in ${Name-in-docs}; try distclean instead"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates a distribution that depends only on standard pieces         -->
+  <!-- =================================================================== -->
+  <target name="dist" depends="build.std.dist,autodist"
+              description="Create a .zip/.tar.gz distribution module containing
+                           all components without dependencies on non-standard
+                           jars that are not part of the build system." >
+    <echo message="dist is human-useable target for distribution, with only standard dependencies"/>
+  </target>
+
+  <target name="dist-nodocs" depends="build.std.dist-nodocs,autodist-nodocs"
+              description="Create a .zip/.tar.gz distribution module containing
+                           all components without dependencies on non-standard
+                           jars that are not part of the build system." >
+    <echo message="dist-nodocs is human-useable target for distribution, with only standard dependencies and no documentation "/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates a complete distribution in which the xalan.jar contains     -->
+  <!-- the interpretive, compiled and the common packages                  -->
+  <!-- =================================================================== -->
+  <target name="fulldist" depends="build.nonstd.dist,autodist"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist is human-useable target for distribution, with all dependencies"/>
+  </target>
+  
+  <target name="fulldist-nodocs" depends="build.nonstd.dist-nodocs,autodist-nodocs"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist-nodocs is human-useable target for distribution, with all dependencies and no documentation"/>
+  </target>  
+
+  <!-- =================================================================== -->
+  <!-- Creates a complete distribution with separate xalan.jar and         -->
+  <!-- xsltc.jar.  The common packages are contained in each jar.          -->
+  <!-- =================================================================== -->
+  <target name="fulldist-separatejars" depends="build.nonstd-separatejars.dist,autodist"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist is human-useable target for distribution, with all dependencies"/>
+  </target>
+
+  <target name="fulldist-separatejars-nodocs" depends="build.nonstd-separatejars.dist-nodocs,autodist-nodocs"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist-separatejars-nodocs is human-useable target for distribution, with all dependencies and no documentation"/>
+  </target>
+  
+  <target name="build.std.dist" depends="build.std.parts">
+    <property name="has.nonstd.parts" value="false"/>
+  </target>
+  <target name="build.std.dist-nodocs" depends="build.std.parts-nodocs">
+    <property name="has.nonstd.parts" value="false"/>
+  </target>  
+
+  <target name="build.nonstd.dist" depends="build.std.parts,build.nonstd.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>
+  <target name="build.nonstd.dist-nodocs" depends="build.std.parts-nodocs,build.nonstd.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>  
+  
+  <target name="build.nonstd-separatejars.dist" depends="build.std-separatejars.parts,
+                                                         build.nonstd-separatejars.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>
+  <target name="build.nonstd-separatejars.dist-nodocs" depends="build.std-separatejars.parts-nodocs,
+                                                                build.nonstd-separatejars.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>
+
+  <target name="build.std.parts"
+          depends="jar,docs,javadocs,samples,extra.std.samples,xsltc.docs"/>
+          
+  <target name="build.std.parts-nodocs"
+          depends="jar,samples,extra.std.samples"/>          
+          
+  <target name="build.std-separatejars.parts"
+          depends="xalan-interpretive.jar,xsltc.jar,
+                   docs.nojardepends,javadocs.nojardepends,
+                   samples.nojardepends,extra.std.samples.nojardepends,
+                   xsltc.docs"/>
+                    
+  <target name="build.std-separatejars.parts-nodocs"
+          depends="xalan-interpretive.jar,xsltc.jar,
+                   samples.nojardepends,extra.std.samples.nojardepends"/>                            
+          
+  <target name="build.nonstd.parts" depends="extra.nonstd.samples"/>
+  <target name="build.nonstd-separatejars.parts" depends="extra.nonstd.samples.nojardepends"/>
+
+  <!-- =================================================================== -->
+  <!-- Autodist targets.  Used by the distribution targets.                -->
+  <!-- =================================================================== -->  
+  <target name="autodist-mkdirs">
+    <mkdir dir="${dist.dir}"/>
+    <mkdir dir="${dist.dir}/lib"/>
+  	<mkdir dir="${dist.dir}/lib/endorsed"/>	
+    <mkdir dir="${dist.dir}/samples"/>       
+    <mkdir dir="${dist.dir}/src"/>
+    <mkdir dir="${dist.dir}/tools"/>     
+    <mkdir dir="${dist.dir}/xdocs"/>
+  </target>
+
+  <target name="autodist-mkdirs-docs">
+    <mkdir dir="${dist.dir}/docs"/>
+    <mkdir dir="${dist.dir}/docs/apidocs"/>
+  </target>
+
+  <target name="autodist-copy-files">
+
+    <!-- Copy license files to distribution root -->
+    <copy todir="${dist.dir}">
+      <fileset dir=".">
+        <include name="LICENSE.txt,NOTICE.txt"/>
+      </fileset>
+    </copy>
+
+    <!-- Copy sources and source documentation -->
+    <copy todir="${dist.dir}/src">
+      <fileset dir="${src.dir}" excludes="javax/**,org/xml/**,org/w3c/**"/><!-- exclude jaxp, sax, dom -->
+    </copy>
+    <copy todir="${dist.dir}/xdocs">
+      <fileset dir="${xdocs.dir}"/>
+    </copy>
+
+    <!-- Copy samples -->
+    <copy todir="${dist.dir}/samples">
+      <fileset dir="${samples.dir}"/>
+    </copy>
+    
+    <!-- Copy tools; used for source distribution -->    
+    <copy todir="${dist.dir}/tools">
+      <fileset dir="${tools.dir}">
+        <include name="*.*"/>
+      </fileset>
+    </copy>
+
+    <!-- 1) Copy runtime libs; used for source distribution -->    
+    <copy todir="${dist.dir}/lib">
+      <fileset dir="${lib.dir}">
+        <include name="*.*"/>
+      </fileset>
+    </copy>
+  	
+  	<!-- 2) Copy runtime libs; used for source distribution -->
+  	<copy todir="${dist.dir}/lib/endorsed">
+  	  <fileset dir="${endorsed.dir}">
+  	     <include name="*.*"/>
+  	  </fileset>
+  	</copy>
+
+    <!-- Copy built jars -->
+    <copy file="${build.dir}/xalansamples.jar" todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xalanservlet.war" todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xsltcapplet.jar"  todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xsltcbrazil.jar"  todir="${dist.dir}/samples"
+          failonerror="${has.nonstd.parts}"/>
+    <copy file="${build.dir}/xsltcejb.jar"     todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xsltcservlet.jar" todir="${dist.dir}/samples"/>
+    
+    <copy file="${build.xalan.jar}" todir="${dist.dir}" />
+    
+    <!-- only copy the xsltc.jar file if it has been built -->
+    <copy todir="${dist.dir}">
+      <fileset dir="${build.dir}" includes="xsltc.jar"/>
+    </copy>
+    <copy file="${build.serializer.jar}" todir="${dist.dir}" />
+    
+    <copy file="${xmlapis.jar}" todir="${dist.dir}" />  
+    <copy file="${parser.jar}" todir="${dist.dir}" />
+  	
+  	<antcall target="xalan-transform-build-file-for-src-distro"/>
+  	
+  	<antcall target="xalan-tests-create-for-src-distro"/>
+
+    <copy todir="${dist.dir}">
+      <fileset dir="." includes="readme.html,KEYS,build.xml,build.sh,deprecated_build.sh,build.bat,
+      	                         commits.xml,LICENSE.txt,NOTICE.txt"/>      
+    </copy>
+  </target>
+	
+  <target name="xalan-transform-build-file-for-src-distro">
+  	<copy file="./build_srcdist_xalan.xml" todir="${dist.dir}"/>
+  	<copy file="./build_srcdist_xalan.xml" tofile="${dist.dir}/build.xml"/>
+  	<!-- copy readme file as well -->
+  	<copy file="./README" todir="${dist.dir}"/>
+  </target>
+	
+  <target name="xalan-tests-create-for-src-distro">
+  	<mkdir dir="${dist.dir}/xalan-test"/>
+  	<copy todir="${dist.dir}/xalan-test">
+  	  <fileset dir="${test.relpath}">
+  	    <exclude name="build.xml"/>
+  	  </fileset>	
+  	</copy>
+  	  	
+  	<copy file="./build_srcdist_xalan_tests.xml" todir="${dist.dir}"/>
+  	<copy file="./build_srcdist_xalan_tests.xml" tofile="${dist.dir}/xalan-test/build.xml"/>
+  	
+  	<delete dir="${dist.dir}/xalan-test/.git" /> 	
+  </target>
+
+  <target name="autodist-copy-files-docs">
+    <!-- Copy built documentation and javadoc -->
+    <copy todir="${dist.dir}/docs">
+      <fileset dir="${build.docs}"/>
+    </copy>
+  </target>
+
+  <target name="autodist-create-bin-packages">
+    <tar tarfile="${build.dir}/${dist.pkg}-bin.tar" >
+      <tarfileset dir="${build.dir}">
+        <patternset refid="bin-distro"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${build.dir}/${dist.pkg}-bin.tar" zipfile="${build.dir}/${dist.pkg}-bin.tar.gz"/>
+    <delete file="${build.dir}/${dist.pkg}-bin.tar" />
+
+    <zip zipfile="${build.dir}/${dist.pkg}-bin.zip" >
+      <fileset dir="${build.dir}">
+        <patternset refid="bin-distro"/>
+      </fileset>
+    </zip>
+  </target>
+  <target name="autodist-create-bin-packages-nodocs">
+    <tar tarfile="${build.dir}/${dist.pkg}-bin-nodocs.tar" >
+      <tarfileset dir="${build.dir}">
+        <patternset refid="bin-distro-nodocs"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${build.dir}/${dist.pkg}-bin-nodocs.tar" zipfile="${build.dir}/${dist.pkg}-bin-nodocs.tar.gz"/>
+    <delete file="${build.dir}/${dist.pkg}-bin-nodocs.tar" />
+
+    <zip zipfile="${build.dir}/${dist.pkg}-bin-nodocs.zip" >
+      <fileset dir="${build.dir}">
+        <patternset refid="bin-distro-nodocs"/>
+      </fileset>
+    </zip>
+  </target>
+  <target name="autodist-create-src-packages">
+    <tar tarfile="${build.dir}/${dist.pkg}-src.tar" >
+      <tarfileset dir="${build.dir}">
+        <patternset refid="src-distro"/>
+        <patternset refid="xsltc-deps-jars"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${build.dir}/${dist.pkg}-src.tar" zipfile="${build.dir}/${dist.pkg}-src.tar.gz"/>
+    <delete file="${build.dir}/${dist.pkg}-src.tar" />
+
+    <zip zipfile="${build.dir}/${dist.pkg}-src.zip" >
+      <fileset dir="${build.dir}">
+        <patternset refid="src-distro"/>
+        <patternset refid="xsltc-deps-jars"/>
+      </fileset>
+    </zip>
+  </target>
+
+  <target name="autodist">
+    <echo message="autodist is for automated build processes, without dependencies"/>
+    <antcall target="autodist-mkdirs"/>
+    <antcall target="autodist-mkdirs-docs"/>
+    <antcall target="autodist-copy-files"/>
+    <antcall target="autodist-copy-files-docs"/>
+    <antcall target="autodist-create-bin-packages"/>
+    <antcall target="autodist-create-src-packages"/>
+  </target>
+
+  <target name="autodist-nodocs">
+    <echo message="autodist-nodocs is for automated build processes, without dependencies"/>
+    <antcall target="autodist-mkdirs"/>
+    <antcall target="autodist-copy-files"/>
+    <antcall target="autodist-create-bin-packages-nodocs"/>
+    <antcall target="autodist-create-src-packages"/>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the documentation tree for the xml.apache.org/xalan-j       -->
+  <!-- website                                                             -->
+  <!-- =================================================================== -->
+  <target name="site" depends="prepare.docs,javadocs,xsltc.docs"
+    description="Build documentation for posting to the website" >
+ 
+    <mkdir dir="${site.dir}/apidocs"/>
+    <mkdir dir="${site.dir}/design"/>
+    <mkdir dir="${site.dir}/xsltc"/>    
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+       <arg line="targetDirectory=${site.dir} ${site.book} ${xdocs.style}"/>
+    </java>
+
+    <!-- put xalan design doc in the site design subdir -->
+    <copy todir="${site.dir}/design">
+      <fileset dir="${build.docs}/design"/>
+    </copy>
+    <!-- put xsltc design doc in the site xsltc subdir -->
+    <copy todir="${site.dir}/xsltc">
+      <fileset dir="${build.docs}/xsltc"/>
+    </copy>  
+    
+    <!-- put in the javadoc -->
+    <copy todir="${site.dir}/apidocs">
+      <fileset dir="${build.apidocs}"/>
+    </copy>      
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the documentation tree for the xalan.apache.org website     -->
+  <!-- =================================================================== -->
+  <target name="xalan.apache.org.site"
+    description="Build documentation for posting to the website" >
+ 
+    <mkdir dir="${xalan.apache.org.site.dir}"/>
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+       <arg line="targetDirectory=${xalan.apache.org.site.dir} ${xalan.apache.org.site.book} ${xdocs.style}"/>
+    </java>
+
+  </target>  
+   
+  <!-- =================================================================== -->
+  <!-- Compiles and runs mini/smoketest from xml-xalan\xalan-test, if present. -->
+  <!-- xml-xalan is a representative folder, that can contain folders xalan-java and xalan-test -->
+  <!-- =================================================================== -->
+  <property name="test.relpath" value="../xalan-test"/>
+
+  <target name="minitest" depends="prepare,minitest-run,tests-not-available" 
+    description="Run the Minitest from xml-xalan/xalan-test" >
+    <!-- This target simply asks the minitest-run worker target to 
+         actually have the Minitest run (by the xalan-test/build.xml file);
+         we then also call the tests-not-available target in case 
+         the user never checked out the tests.
+    -->
+  </target>
+  <target name="minitest-run" if="tests-available" depends="jar">
+    <echo message=" [minitest] Calling ${test.relpath}/build.xml to run the Minitest" />
+    <ant dir="${test.relpath}" antfile="build.xml" target="minitest.gump" >
+    </ant>
+  </target>
+
+  <target name="smoketest" depends="prepare,smoketest-run,tests-not-available" 
+    description="Run Smoketests (Minitest, conf, harness) from xml-xalan/xalan-test">
+  </target>
+  <target name="smoketest-run" if="tests-available" depends="jar">
+    <echo message=" [minitest] Calling ${test.relpath}/build.xml to run the Smoketest"/>
+    <ant dir="${test.relpath}" antfile="build.xml" target="smoketest.dev">
+    </ant>
+  </target>
+	
+  <target name="smoketest.xsltc" depends="prepare,smoketest.xsltc-run,tests-not-available" 
+	    description="Run smoketest.xsltc from xml-xalan/xalan-test">
+  </target>
+  <target name="smoketest.xsltc-run" if="tests-available" depends="jar">
+	 <echo message="Calling ${test.relpath}/build.xml to run the smoketest.xsltc" />
+	 <ant dir="${test.relpath}" antfile="build.xml" target="smoketest.xsltc">
+	 </ant>
+  </target>
+
+  <target name="check" depends="smoketest"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="Redirect to smoketest target"/>
+  </target>
+
+  <!-- Called from various testing targets if the test dir doesn't exist. -->
+  <target name="tests-not-available" unless="tests-available" >
+    <echo message=" [tests] The tests do not seem to be present in ${test.relpath}" />
+    <echo message=" [tests] You must have checked out from CVS to run the tests," />
+    <echo message=" [tests]   it is not included in binary distributions." />
+    <echo message=" [tests] See http://xml.apache.org/xalan-j/test/ for more info." />
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates the xalan design document                                   -->
+  <!-- =================================================================== -->
+    <target name="xalan-j2-design">
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+      <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=${build.dir}/docs/design/
+      ${xdocs.dir}/sources/xalandesign.xml ${xdocs.style}"/>
+    </java>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Use FOP to create preliminary print (pdf) doc                       -->
+  <!-- Note: fop.jar and xml.jar (from xml-fop) must be on classpath       -->
+  <!-- This is VERY preliminary, not yet for inclusion in distribution     -->
+  <!-- =================================================================== -->
+  <!--Collate the xml sources into a single xml source with a litle extra structure -->
+  <target name="printerdocs" depends="prepare.docs">
+    <echo message="NOTICE: requires fop.jar and xml.jar on the classpath"/>
+    <java fork="yes" 
+          classname="${xalan.cmdline.class}"
+          classpathref="docs.class.path" >
+      <arg line="-xsl ${xdocs.dir}/sources/xalan-collate.xsl 
+                 -out xdocs/sources/xalan/xalan-collate.xml"/>
+    </java>
+    
+    <!-- Transform collation into Formatting Objects 
+         (with a little work on links along the way) -->    
+    <java fork="yes" 
+          classname="${xalan.cmdline.class}"
+          classpathref="docs.class.path" >
+      <arg line="-in  ${xdocs.dir}/sources/xalan/xalan-collate.xml
+                 -param resourceFile '../../sources/xalan/resources.xml'
+                 -param project ${Name-in-docs}      
+                 -xsl ${xdocs.style}/stylesheets/xml2fo.xsl 
+                 -out build/docs/xalan-collate.fo"/>
+    </java>
+    
+    <!-- Use FOP to generate a pdf file (classpath may need updating! -sc 18-Apr-01)-->
+    <java fork="yes" 
+          classname="org.apache.fop.apps.CommandLine"
+      classpath="${build.xalan.jar}:${bin.dir}/fop.jar:${bin.dir}/w3c.jar">
+      <arg line="${build.docs}/xalan-collate.fo build/docs/xalan.pdf"/>
+    </java>
+  </target>
+
+ 
+  <!-- =================================================================== -->
+  <!-- Build XSLTC design documentation. Eventually intend to incorporate -->
+  <!-- XSLTC into the Xalan book.                                         -->
+  <!-- =================================================================== -->
+
+
+  <target name="xsltc.prepare.docs" depends="prepare.docs.nojardepends">
+   <mkdir dir="${build.docs}/xsltc"/>
+   <!--   
+   <echo message="Transform xsltc_todo.xml and put the result in ${build.docs}/xsltc"/>
+   <java fork="yes" classname="${xalan.cmdline.class}">
+      <classpath refid="docs.class.path" />
+      <arg line="-in xsltc_todo.xml -xsl todo.xsl -out build/docs/xsltc/todo.html"/>
+   </java>  -->
+  </target>  
+ 
+ <target name="xsltc.docs" depends="xsltc.prepare.docs">
+   <echo message="Build the XSLTC Architectural documentation"/>
+   <java fork="yes" 
+         classname="${doc.generator}" 
+         classpathref="docs.class.path" >
+      <arg line="targetDirectory=${build.docs}/xsltc ${xdocs.dir}/sources/xsltc.xml ${xdocs.style}"/>
+    </java>	 
+    <copy todir="${build.docs}/xsltc" 
+	file="${xdocs.dir}/sources/xsltc/README.xslt" />
+    <copy todir="${build.docs}/xsltc" 
+	file="${xdocs.dir}/sources/xsltc/README.xsltc" />
+ </target>
+ 
+   <!-- pack all doc for transfer to website -->
+ <target name="pack.docs">
+    <!--tar tarfile="./build/xalan-j-docs.tar" basedir="./xml-site/target/xalan-j" includes="**"/>
+    <gzip src="./build/xalan-j-docs.tar" zipfile="./build/xalan-j-docs.tar.gz"/-->
+    <zip zipfile="./build/xalan-j-docs.zip" basedir="./xml-site/target/xalan-j" includes="**"/>
+  </target>
+
+
+<!-- ####################################################
+     # START OF SECTION TO BUILD STAND-ALONE SERIALIZER #
+     #################################################### -->
+
+  <!-- try not to use other properties directly when building the serializer -->
+  <!-- either create new values, or copy, just in case we separate into      -->
+  <!-- a totally new build.xml file                                          -->
+  <property name="serializer.build.debug"   value="${build.debug}"            />
+ 
+  
+  <!-- PROPERTIES TO MAKE THE SOURCE DISTRIBUTION ========================== -->
+  <property name="serializer.name"          value="serializer"                />
+  <property name="serializer.version"       value="${version}"                />
+  <property name="serializer.dist.file"     value="${serializer.name}-j_${serializer.version}"/>
+  <property name="serializer.dist.dir"      value="${serializer.build.dir}/${serializer.dist.file}"/>
+
+  <!-- patternset for source distribution packages -->
+  <patternset id="serializer-src-distro" >
+    <!-- some license and legal stuff -->
+    <include name="${serializer.dist.file}/LICENSE.txt"/>
+    <include name="${serializer.dist.file}/NOTICE.txt"/> 
+    <include name="${serializer.dist.file}/KEYS"/>  
+
+    <!-- The build stuff that uses Ant and this file itself, build.xml
+         this is getting into a strange loop but the source distribution
+         needs to build, and it uses this file, build.xml to do so ... -->
+    <include name="${serializer.dist.file}/build.bat"/>
+    <include name="${serializer.dist.file}/build.sh"/>
+    <include name="${serializer.dist.file}/build.xml"/>
+
+    <!-- The source code that the source distribution would build -->
+    <include name="${serializer.dist.file}/src/${serializer.reldir}/**/*.java" />
+    <include name="${serializer.dist.file}/src/${serializer.reldir}/**/*.properties" />
+    <include name="${serializer.dist.file}/src/${serializer.manifest.basename}" />
+
+    <!-- We need Ant in order to run build.xml in the source distribution -->
+    <include name="${serializer.dist.file}/tools/ant.jar"/>
+    <include name="${serializer.dist.file}/tools/antRun"/>
+    <include name="${serializer.dist.file}/tools/antRun.bat"/>
+
+    <!-- The serializer needs this jar in order to build -->
+    <include name="${serializer.dist.file}/xml-apis.jar"/>
+    
+    <!-- Ant needs an XML parser in order to read in the build.xml, so it
+         can even do the build ... this is a strange loop ... -->
+    <include name="${serializer.dist.file}/xercesImpl.jar"/>
+  </patternset>
+
+  <!-- patternset for  binary distribution packages ... if needed
+  <patternset id="serializer-bin-distro" >
+    <include name="${serializer.dist.file}/LICENSE.txt"/>
+    <include name="${serializer.dist.file}/NOTICE.txt"/>
+    <include name="${serializer.dist.file}/KEYS"/>
+    <include name="${serializer.dist.file}/${serializer.name}.jar"/>
+    <include name="${serializer.dist.file}/${xmlapis.jar.name}"/>
+    <include name="${serializer.dist.file}/${parser.jar.name}"/>    
+  </patternset>
+  -->
+  
+  <!-- =================================================================== -->
+  <!-- Creates the Serializer jar                                          -->
+  <!-- =================================================================== -->
+  <target name="serializer.jar"
+    depends="serializer.prepare,serializer.compile"
+    description="Build the serializer and created serializer.jar" >
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${serializer.impl.version}"/>
+    <filter token="java.version" value="${serializer.java.version}"/>
+    <filter token="java.vendor"  value="${serializer.java.vendor}"/>
+    <copy todir="${serializer.build.dir}" file="${serializer.manifest}" filtering="true"/>
+
+    <jar jarfile="${build.serializer.jar}"
+      manifest="${serializer.build.dir}/${serializer.manifest.basename}"
+      basedir="${serializer.build.classes}" >
+      <patternset><!-- relative to jar/@basedir -->
+        <include name="${serializer.reldir}/**/*" />
+      </patternset>
+    </jar>
+  </target>
+
+  <target name="serializer.prepare">
+    <mkdir dir="${serializer.build.dir}"/>
+    <mkdir dir="${serializer.build.classes}"/>
+  </target>
+
+  <target name="serializer.compile">
+    <echo message="Compiling the Serializer" />
+    <javac srcdir="${serializer.src.dir}"
+           destdir="${serializer.build.classes}"
+           debug="${serializer.build.debug}" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   nowarn="${compiler.nowarn}">
+      <include name="${serializer.reldir}/**/*.java" />
+      <classpath refid="compile.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
+    <copy todir="${serializer.build.classes}">
+      <fileset dir="${serializer.src.dir}" includes="${serializer.reldir}/**/*.properties"/>
+    </copy>
+
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Creates the API documentation                                       -->
+  <!-- =================================================================== -->
+  <target name="serializer.javadocs"
+    description="Build the Javadocs for the Serializer" >
+    <echo message="javadocs is human-usable target with dependencies"/>  
+    
+    <mkdir dir="${build.docs}"/> 
+    <mkdir dir="${build.apidocs}"/>
+    <antcall target="serializer.autojavadocs"/>
+  </target>
+
+  <target name="serializer.autojavadocs" 
+          depends="serializer.autojavadocs-1.4-or-higher-if,serializer.autojavadocs-non1.4-or-higher-if">
+    <echo message="serializer.autojavadocs is for automated build process, without dependencies"/>
+  </target>
+
+  <target name="serializer.autojavadocs-1.4-or-higher-if" if="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="serializer.autojavadocs-1.4-or-higher"/>
+  </target>
+
+  <target name="serializer.autojavadocs-non1.4-or-higher-if" unless="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="serializer.autojavadocs-non1.4-or-higher"/>
+  </target>
+
+  <target name="serializer.autojavadocs-1.4-or-higher">
+    
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         additionalparam="-breakiterator"
+         destdir="${build.apidocs}"
+         public="true"
+         sourcepath="${src.dir}"
+         packagenames="org.apache.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} Serializer ${impl.version}" 
+         doctitle="${Name-in-docs} Serializer ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <taglet name="xalan2jtaglet.XSLUsageTag" path="${taglet.jar}"/>
+          <group title="Serializer" packages="org.apache.xml.serialize*"/>
+    </javadoc>
+  </target>
+
+  <target name="serializer.autojavadocs-non1.4-or-higher">
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         public="true"
+         sourcepath="${src.dir}"
+         packagenames="org.apache.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} Serializer ${impl.version}" 
+         doctitle="${Name-in-docs} Serializer ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <doclet name="xalanjdoc.Standard" path="${doclet.jar}">
+            <param name="-d" value="${build.apidocs}"/>
+          </doclet>
+          <group title="Serializer" packages="org.apache.xml.serialize*"/>
+    </javadoc>
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Create the serializer source distribution                           -->
+  <!-- =================================================================== -->
+  <target name="serializer-dist"
+          depends="serializer.jar"
+          description="Build the serializer source distribution .tar and .zip">
+    <antcall target="serializer-autodist-mkdirs"/>
+    <antcall target="serializer-autodist-copy-files"/>
+      <!-- <antcall target="serializer-autodist-create-bin-packages"/> -->
+    <antcall target="serializer-autodist-create-src-packages"/>
+  </target>
+
+  <target name="serializer-autodist-mkdirs">
+    <echo message="Serializer: making distribution directories" />
+    <mkdir dir="${serializer.dist.dir}"/> 
+    <mkdir dir="${serializer.dist.dir}/src"/>
+    <mkdir dir="${serializer.dist.dir}/tools"/>      
+  </target>
+
+  <target name="serializer-autodist-copy-files">
+    <!-- Copy bin directory, which includes preexisting checked-in .jar files -->
+<!--    <copy todir="${serializer.dist.dir}/bin">
+      <fileset dir="${serializer.bin.dir}" />
+    </copy> -->
+
+    <echo message="Serializer: copy source files to ${serializer.dist.dir}/src" />
+    <echo message="            ... from ${serializer.src.dir}/${serializer.reldir}" />
+    <!-- Copy sources -->
+    <copy todir="${serializer.dist.dir}/src/${serializer.reldir}">
+      <fileset dir="${serializer.src.dir}/${serializer.reldir}"/>
+    </copy>
+    <!-- Copy the manifest -->
+    <copy file="${serializer.src.dir}/${serializer.manifest.basename}"
+          todir="${serializer.dist.dir}/src" />
+
+    <!-- Copy built jars -->
+    <copy file="${build.serializer.jar}" todir="${serializer.dist.dir}" />
+    
+    <!-- Copy runtime jars -->    
+    <copy file="${lib.dir}/${xmlapis.jar.name}" todir="${serializer.dist.dir}" />
+    <copy file="${lib.dir}/${parser.jar.name}" todir="${serializer.dist.dir}" />
+
+    <!-- Copy licenses -->
+    <copy todir="${serializer.dist.dir}">
+      <fileset dir="." 
+               includes="LICENSE.txt,NOTICE.txt"/>
+    </copy>
+
+    <!-- Copy tools -->
+    <copy todir="${serializer.dist.dir}/tools">
+      <fileset dir="./tools" includes="ant*"/>
+    </copy>    
+
+    <copy todir="${serializer.dist.dir}">
+      <fileset dir="." includes="KEYS,build.xml,build.sh,build.bat"/>
+    </copy>
+  </target>
+
+  <target name="serializer-autodist-create-bin-packages">
+    <tar tarfile="${serializer.build.dir}/${serializer.dist.file}-bin.tar" >
+      <tarfileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-bin-distro"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${serializer.build.dir}/${serializer.dist.file}-bin.tar" 
+      zipfile="${serializer.build.dir}/${serializer.dist.file}-bin.tar.gz"/>
+
+    <!--  
+    <delete file="${serializer.build.dir}/${serializer.dist.file}-bin.tar" />
+      -->
+
+    <zip zipfile="${serializer.build.dir}/${serializer.dist.file}-bin.zip" >
+      <fileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-bin-distro"/>
+      </fileset>
+    </zip>
+  </target>
+
+  <target name="serializer-autodist-create-src-packages">
+    <tar tarfile="${serializer.build.dir}/${serializer.dist.file}-src.tar" >
+      <tarfileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-src-distro"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${serializer.build.dir}/${serializer.dist.file}-src.tar" zipfile="${serializer.build.dir}/${serializer.dist.file}-src.tar.gz"/>
+
+    <delete file="${serializer.build.dir}/${serializer.dist.file}-src.tar" />
+
+    <zip zipfile="${serializer.build.dir}/${serializer.dist.file}-src.zip" >
+      <fileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-src-distro"/>
+      </fileset>
+    </zip>
+  </target>
+<!-- ##################################################
+     # END OF SECTION TO BUILD STAND-ALONE SERIALIZER #
+     ################################################## -->
+
+</project>
diff --git a/build_srcdist_xalan.xml b/build_srcdist_xalan.xml
new file mode 100644
index 00000000..4b2d9d5d
--- /dev/null
+++ b/build_srcdist_xalan.xml
@@ -0,0 +1,1944 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+<!-- ===================================================================
+
+   Build file for Xalan-J 2.x - for use with the Jakarta Ant java build tool
+   
+Setup instructions: 
+   Before running an Ant build, you must
+   
+     - set the JAVA_HOME environment variable to the JDK root directory
+     - To build 'servlet' sample: Include Servlet SDK in your classpath
+     - To build docs/javadocs/xsltc: use JDK 1.2.x or higher
+   
+Build Instructions:   
+  To build, run
+    build.bat (win32) or build.sh (unix) [antoptions] [targets]
+  in the directory where this file is located; you should also be 
+  able to use an installation of Ant v1.4.1 or later.
+   
+  build -projecthelp  will show a list of supported targets.
+   
+  Developers: include a description="" attribute in all user-callable targets.
+        
+  If you build a target that depends on other targets, those other 
+  targets are *usually* created in the correct order; however a 
+  few of the larger targets like dist do not list all dependencies.
+
+Other Important Notes:
+- 'dist' produces a .tar file that works with GNU compatible tar 
+  programs, because that's what Ant does when it finds a path that's 
+  longer than 100 characters (like in our docs).  Sorry!
+  
+- External build maintainers: look for GUMP: comments; developers 
+  please use great caution when changing these lines!
+
+- Unusual build items: the docs and xsltc.compile targets leave 
+  cruft in the source areas; various clean targets get most of this.
+  
+Authors:
+  Shane Curcuru <sh...@lotus.com>
+  Don Leslie <do...@lotus.com>
+  
+This file has been written, to enable building XalanJ from XalanJ 
+source distribution. This file is largely, a copy of the file build.xml
+provided by XalanJ xalan-java git repos.   
+
+$Id$
+==================================================================== -->
+
+<project name="Xalan" default="jar" basedir=".">
+
+  <property name="name"                   value="xalan"/>
+  <property name="year"                   value="2023"/>
+  <property name="build.debug"            value="on"/>  
+  <property name="compiler.target"        value="1.8"/>
+  <property name="compiler.source"        value="1.8"/>
+  <property name="compiler.nowarn"        value="on"/>
+
+  <!-- Xalan Java version information -->
+  <property name="version.VERSION"        value="2"/>
+  <property name="version.RELEASE"        value="7"/>
+  <property name="version.DEVELOPER"      value=""/><!-- Set this to 'D' if a developer release; blank "" if maintenance release -->
+  <property name="version.MINOR"          value="3"/><!-- EITHER the developer release number, or a maintenance release number -->
+  <property name="version"                value="${version.VERSION}_${version.RELEASE}_${version.DEVELOPER}${version.MINOR}"/><!-- GUMP: version # of dist file -->
+  <property name="impl.version"           value="${version.VERSION}.${version.RELEASE}.${version.DEVELOPER}${version.MINOR}"/><!-- Used in jar task for filtering MANIFEST.MF file -->
+  
+  <!-- Xerces Java version information -->
+  <property name="parser.version.VERSION" value="2"/>
+  <property name="parser.version.RELEASE" value="12"/>
+  <property name="parser.version.MINOR"   value="2"/> 
+  
+  <!-- Xalan Java directories -->  
+  <!--  <property name="bin.dir"                value="./bin"/> -->
+  <property name="build.dir"              value="./build"/> 
+  <property name="lib.dir"                value="./lib"/>   
+  <property name="endorsed.dir"           value="${lib.dir}/endorsed"/>   
+  <property name="samples.dir"            value="./samples"/>   
+  <property name="src.dir"                value="./src"/>  
+  <property name="tools.dir"              value="./tools"/> 
+  <property name="xdocs.dir"              value="./xdocs"/>
+    
+  <property name="apachexml.reldir"       value="org/apache/xml"/>
+  <property name="serializer.reldir"      value="org/apache/xml/serializer"/>
+  <property name="xpath.reldir"           value="org/apache/xpath"/>
+  <property name="xalan.reldir"           value="org/apache/xalan"/>
+  <property name="domxpath.reldir"        value="org/w3c/dom/xpath"/>
+  <property name="xsltc.reldir"           value="${xalan.reldir}/xsltc"/>  
+
+  <!-- Jars to run Xalan Java (Interpretive, Compiled, or both) -->
+  <property name="xmlapis.jar.name"       value="xml-apis.jar"/>
+  <property name="xmlapis.jar"            value="${endorsed.dir}/${xmlapis.jar.name}"/>
+  <property name="parser.jar.name"        value="xercesImpl.jar"/>
+  <property name="parser.jar"             value="${endorsed.dir}/${parser.jar.name}"/>
+  <property name="bcel.jar.name"          value="bcel-6.7.0.jar"/>
+  <property name="bcel.jar"               value="${lib.dir}/${bcel.jar.name}"/>
+  <property name="runtime.jar.name"       value="runtime.jar"/>
+  <property name="runtime.jar"            value="${lib.dir}/${runtime.jar.name}"/>
+  <property name="regexp.jar.name"        value="regexp.jar"/>
+  <property name="regexp.jar"             value="${lib.dir}/${regexp.jar.name}"/>
+  
+  <!-- Jars to build Xalan Java (Interpretive, Compiled, or both) or build the docs -->
+  <property name="java_cup.jar.name"      value="java_cup.jar"/>
+  <property name="java_cup.jar"           value="${tools.dir}/${java_cup.jar.name}"/>
+  <property name="jlex.jar.name"          value="JLex.jar"/>
+  <property name="jlex.jar"               value="${tools.dir}/${jlex.jar.name}"/>  
+  <property name="stylebook.jar.name"     value="stylebook-1.0-b3_xalan-2.jar"/>
+  <property name="stylebook.jar"          value="${tools.dir}/${stylebook.jar.name}"/>
+  <property name="doclet.jar.name"        value="xalan2jdoc.jar"/>
+  <property name="doclet.jar"             value="${tools.dir}/${doclet.jar.name}"/>
+  <property name="taglet.jar.name"        value="xalan2jtaglet.jar"/>
+  <property name="taglet.jar"             value="${tools.dir}/${taglet.jar.name}"/>
+
+  <!-- Jars to build Xalan Java samples -->
+  <property name="servlet-api.jar.name"   value="servlet-api-2.5.jar"/>
+  <property name="servlet-api.jar"        value="${lib.dir}/${servlet-api.jar.name}"/>
+  <property name="javaee-api.jar.name"    value="javaee-api-5.0-2.jar"/>
+  <property name="javaee-api.jar"         value="${lib.dir}/${javaee-api.jar.name}"/>
+  <property name="brazil.jar.name"        value="brazil-2.1.jar"/>
+  <property name="brazil.jar"             value="${lib.dir}/${brazil.jar.name}"/>
+ 
+  <!-- Relative locations of source directories -->
+  <property name="manifest.mf"            value="./src/MANIFEST.MF"/>
+  <property name="manifest.xsltc.mf"      value="./src/manifest.xsltc"/>
+  <property name="manifest.xalan-interpretive.mf" value="./src/manifest.xalan-interpretive"/>  
+  <property name="XSLTInfo.props"         value="./src/org/apache/xalan/res/XSLTInfo.properties"/>  
+  <property name="generated.xpathparser"  value="${src.dir}/${xsltc.reldir}/compiler/XPathParser.java"/>
+  <property name="generated.xpathlexer"   value="${src.dir}/${xsltc.reldir}/compiler/XPathLexer.java"/>
+  <property name="generated.xpathsym"     value="${src.dir}/${xsltc.reldir}/compiler/sym.java"/>
+  
+  <!-- Build and distribution output areas -->
+  <property name="build.xalan.jar"              value="${build.dir}/${name}.jar"/><!-- GUMP: actual path/name of jar target output -->
+  <property name="build.xalan-unbundled.jar"    value="${build.dir}/${name}-unbundled.jar"/>
+  <property name="build.xalan-interpretive.jar" value="${build.dir}/${name}.jar"/>
+  <property name="build.xsltc.jar"              value="${build.dir}/xsltc.jar"/>
+  <property name="build.classes"                value="${build.dir}/classes"/>
+  <property name="build.docs"                   value="${build.dir}/docs"/>
+  <property name="build.samples"                value="${build.dir}/samples"/>
+  <property name="build.servlet"                value="${build.samples}/servlet"/>
+  <property name="build.apidocs"                value="${build.docs}/apidocs"/>
+  <property name="dist.pkg"                     value="${name}-j_${version}"/><!-- GUMP: actual path/name of dist target .tar.gz/.zip-->
+  <property name="dist.file"                    value="${dist.pkg}"/>
+  <property name="dist.dir"                     value="${build.dir}/${dist.pkg}"/>
+  
+  <!-- xml-commons sources (for Javadoc) -->                                                                        
+  <property name="xml-commons-srcs.tar.gz"      value="${src.dir}/xml-commons-external-1.3.02-src.tar.gz"/>
+  <property name="xml-commons-srcs.tar"         value="${build.dir}/xml-commons-external-1.3.02-src.tar"/>
+ 
+  <!-- Documentation and samples information  -->
+  <property name="Name-in-docs"                 value="Xalan-Java"/>
+  <property name="version.file"                 value="${xalan.reldir}/processor/XSLProcessorVersion.java"/>
+  
+  <property name="build.samples.jar"            value="${build.dir}/xalansamples.jar"/>
+  <property name="build.servlet.war"            value="${build.dir}/xalanservlet.war"/>
+  <property name="build.xsltc.applet.jar"       value="${build.dir}/xsltcapplet.jar"/>
+  <property name="build.xsltc.brazil.jar"       value="${build.dir}/xsltcbrazil.jar"/>
+  <property name="build.xsltc.ejb.jar"          value="${build.dir}/xsltcejb.jar"/>
+  <property name="build.xsltc.servlet.jar"      value="${build.dir}/xsltcservlet.jar"/>
+  
+  <property name="xdocs.book"                   value="${xdocs.dir}/sources/xalan-jlocal.xml"/>
+  <property name="xdocs.style"                  value="${xdocs.dir}/style"/>
+  <property name="xalanonly-styledocs"
+            value="dtd/xsl-html40s.dtd,dtd/spec.dtd,stylesheets/patterns.xsl,stylesheets/notice.xsl,stylesheets/spec.xsl,stylesheets/done.xsl,loaderdesign.xml,stylesheets/design2project.xsl,stylesheets/designdoc2html.xsl,stylesheets/xml2fo.xsl"/>
+  <property name="xalan.cmdline.class"          value="org.apache.xalan.xslt.Process"/>
+  <property name="doc.generator"                value="org.apache.stylebook.StyleBook"/>
+  <property name="doc.generator.styletargz"     value="${xdocs.dir}/xml-site-style.tar.gz"/>
+  <property name="doc.generator.styletar"       value="${xdocs.dir}/xml-site-style.tar"/>
+  
+  <property name="site.root"                    value="./xml-site"/>
+  <property name="site.dir"                     value="${site.root}/target/xalan-j"/>
+  <property name="site.book"                    value="${xdocs.dir}/sources/xalan-jsite.xml"/>
+  
+  <property name="xalan.apache.org.site.root"   value="./xalan-apache-org-site"/>
+  <property name="xalan.apache.org.site.dir"    value="${xalan.apache.org.site.root}/target/xalan-apache-org"/>
+  <property name="xalan.apache.org.site.book"   value="${xdocs.dir}/sources/xalan-apache-org-site.xml"/>  
+  
+  
+  <property name="xdocs.DONE.file"              value="${xdocs.dir}/sources/xalan/DONE"/>
+  <property name="xdocs.XSLTCDONE.file"         value="XSLTCDONE"/>
+  <property name="xdocs.XSLTCDONE.location"     value="${xdocs.dir}/sources/xalan/${xdocs.XSLTCDONE.file}"/>
+
+      
+  <!-- PROPERTIES TO COMPILE THE SERIALIZER  ======================================= -->  
+  <property name="serializer.src.dir"           value="./src"/>
+  <property name="serializer.build.dir"         value="./build"/> 
+  <property name="serializer.build.classes"     value="${serializer.build.dir}/serializer"/> 
+  
+  <!-- PROPERTIES TO MAKE THE SERIALIZER JAR ======================================= -->
+  <property name="serializer.manifest.basename" value="MANIFEST.SERIALIZER"/> 
+  <property name="serializer.manifest"          value="${serializer.src.dir}/${serializer.manifest.basename}"/>
+  <property name="serializer.impl.version"      value="${impl.version}"/>
+  <property name="serializer.java.version"      value="${java.version}"/>
+  <property name="serializer.java.vendor"       value="${java.vendor}"/>
+  <property name="serializer.jar.name"          value="serializer.jar"/>   
+  <property name="build.serializer.jar"         value="${serializer.build.dir}/${serializer.jar.name}"/> 
+  <property name="lib.serializer.jar"           value="./lib/${serializer.jar.name}"/>   
+ 
+  <!-- Class paths used in various targets -->
+  <path id="docs.class.path">
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${parser.jar}" />
+    <pathelement location="${bcel.jar}" />
+    <pathelement location="${runtime.jar}" />
+    <pathelement location="${stylebook.jar}" />
+    <pathelement location="${doclet.jar}" />
+    <pathelement location="${taglet.jar}" />
+    <pathelement location="${build.serializer.jar}" />
+    <pathelement location="${build.xalan.jar}" />
+    <pathelement path="${java.class.path}" />
+  </path>
+  <path id="samples.class.path">
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />    
+    <pathelement location="${parser.jar}" />  
+    <pathelement location="${build.xalan.jar}" />
+    <pathelement path="${java.class.path}" />
+  </path>
+  <path id="compile.class.path">
+    <!-- Ensure the selected parser.jar file is used to compile against -->
+    <pathelement location="${build.classes}" />
+    <pathelement location="${serializer.build.classes}" />    
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />
+    <pathelement location="${parser.jar}" />
+    <pathelement path="${java.class.path}" />
+  </path>
+	
+  <path id="xslt.boot.class.path">
+	 <!-- Put this version of xalan in front of the jdk's for JDK 1.4+ -->
+	 <pathelement location="${xmlapis.jar}" />
+	 <pathelement location="${build.serializer.jar}" />    
+	 <pathelement location="${parser.jar}" />
+	 <pathelement path="${sun.boot.class.path}" />
+  </path>
+	
+  <path id="compile.source.path">
+    <dirset dir="${src.dir}" includes="/org/apache/**" />
+  </path>
+
+  <!-- patternsets for source and binary distribution packages -->
+  <patternset id="bin-distro">
+    <include name="${dist.file}/LICENSE.txt"/>
+    <include name="${dist.file}/NOTICE.txt"/>
+    <include name="${dist.file}/readme.html"/>
+    <include name="${dist.file}/xalan.jar"/>
+    <!-- xsltc.jar will only be picked up if it has been built -->
+    <include name="${dist.file}/xsltc.jar"/>     
+    <include name="${dist.file}/${xmlapis.jar.name}"/>
+    <include name="${dist.file}/${parser.jar.name}"/>
+    <include name="${dist.file}/${serializer.jar.name}"/>
+    <include name="${dist.file}/samples/"/>    
+    <include name="${dist.file}/samples/xalansamples.jar"/>
+    <include name="${dist.file}/samples/xalanservlet.war"/>
+    <include name="${dist.file}/samples/xsltcapplet.jar"/>
+    <include name="${dist.file}/samples/xsltcbrazil.jar"/>
+    <include name="${dist.file}/samples/xsltcejb.jar"/>
+    <include name="${dist.file}/samples/xsltcservlet.jar"/>
+    <include name="${dist.file}/docs/"/>
+  </patternset>
+  <patternset id="bin-distro-nodocs">
+    <include name="${dist.file}/LICENSE.txt"/>
+    <include name="${dist.file}/NOTICE.txt"/>
+    <include name="${dist.file}/readme.html"/>
+    <include name="${dist.file}/xalan.jar"/>
+    <!-- xsltc.jar will only be picked up if it has been built -->
+    <include name="${dist.file}/xsltc.jar"/>    
+    <include name="${dist.file}/${xmlapis.jar.name}"/>
+    <include name="${dist.file}/${parser.jar.name}"/>
+    <include name="${dist.file}/${serializer.jar.name}"/>
+    <include name="${dist.file}/samples/"/>        
+    <include name="${dist.file}/samples/xalansamples.jar"/>
+    <include name="${dist.file}/samples/xalanservlet.war"/>
+    <include name="${dist.file}/samples/xsltcapplet.jar"/>
+    <include name="${dist.file}/samples/xsltcbrazil.jar"/>
+    <include name="${dist.file}/samples/xsltcejb.jar"/>
+    <include name="${dist.file}/samples/xsltcservlet.jar"/>
+  </patternset>
+  <patternset id="src-distro">
+    <include name="${dist.file}/LICENSE.txt"/>
+    <include name="${dist.file}/NOTICE.txt"/>      
+    <include name="${dist.file}/*build.*"/>
+    <include name="${dist.file}/commits.xml"/>
+    <include name="${dist.file}/KEYS"/>
+    <include name="${dist.file}/readme.html"/>
+  	<include name="${dist.file}/README"/>
+    <include name="${dist.file}/lib/"/>
+    <include name="${dist.file}/tools/"/>
+    <include name="${dist.file}/samples/"/>
+    <exclude name="${dist.file}/samples/xalansamples.jar"/>
+    <exclude name="${dist.file}/samples/xalanservlet.war"/>
+    <exclude name="${dist.file}/samples/xsltcapplet.jar"/>
+    <exclude name="${dist.file}/samples/xsltcbrazil.jar"/>
+    <exclude name="${dist.file}/samples/xsltcejb.jar"/>
+    <exclude name="${dist.file}/samples/xsltcservlet.jar"/>    
+    <include name="${dist.file}/src/"/>  	
+    <include name="${dist.file}/xdocs/"/>
+  	<include name="${dist.file}/build_srcdist_xalan.xml"/>
+  	<include name="${dist.file}/build_srcdist_xalan_tests.xml"/>
+  	<include name="${dist.file}/xalan-test/"/>  	
+  </patternset>
+
+  <!-- XSLTC engine dependency .jar files -->    
+  <patternset id="xsltc-deps-jars">
+    <include name="${dist.file}/lib/${bcel.jar.name}"/>
+    <include name="${dist.file}/tools/${java_cup.jar.name}"/>
+    <include name="${dist.file}/tools/${jlex.jar.name}"/>
+    <include name="${dist.file}/lib/${runtime.jar.name}"/>
+    <include name="${dist.file}/lib/${regexp.jar.name}"/>
+  </patternset>
+
+  <!-- =================================================================== -->
+  <!-- Creates output build directories and doc prerequistes               -->
+  <!-- =================================================================== -->
+  <target name="prepare">
+    <echo message="Project:${Name-in-docs} version:${version} build.xml $Revision$"/>
+    <mkdir dir="${build.dir}"/>
+    <mkdir dir="${build.classes}"/>
+    <!-- Note that all testing-related targets *must* depend on 
+         this target, either directly or indirectly, to get 
+         the tests-available property set for them.
+    -->
+    <available file="${test.relpath}" property="tests-available" />
+    <available property="xerces.present" 
+      classname="org.apache.xerces.parsers.SAXParser"/>
+      
+    <!-- Update version information.  This copies the Version.src
+         file into Version.java, while replacing the following tokens
+    -->
+    <filter token="version.VERSION"          value="${version.VERSION}"/>  
+    <filter token="version.RELEASE"          value="${version.RELEASE}"/>
+    <filter token="version.MINOR"            value="${version.MINOR}"/>
+    <filter token="version.DEVELOPER"        value="${version.DEVELOPER}"/> 
+    <filter token="parser.version.VERSION"   value="${parser.version.VERSION}"/>  
+    <filter token="parser.version.RELEASE"   value="${parser.version.RELEASE}"/>
+    <filter token="parser.version.MINOR"     value="${parser.version.MINOR}"/>    
+    <copy tofile="${src.dir}/${xalan.reldir}/Version.java" file="${src.dir}/${xalan.reldir}/Version.src" filtering="true"/>
+    <copy tofile="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.java" file="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.src" filtering="true"/>    
+    <copy tofile="${src.dir}/${serializer.reldir}/Version.java" file="${src.dir}/${serializer.reldir}/Version.src" filtering="true"/>
+    <copy tofile="${xdocs.dir}/sources/entities.ent" file="${xdocs.dir}/sources/entities.src" filtering="true"/>
+  </target>
+
+  <!-- Must depend on jar since we use Xalan to process xml files -->
+  <target name="prepare.docs" depends="jar,prepare.docs.nojardepends"/>
+  
+  <target name="prepare.docs.nojardepends">  
+    <mkdir dir="${build.docs}"/> 
+    <mkdir dir="${build.apidocs}"/>
+
+    <gunzip src="${doc.generator.styletargz}"/>
+    <untar src="${doc.generator.styletar}" dest="${xdocs.dir}"/>
+    <delete file="${doc.generator.styletar}"/>
+
+    <!-- We use a sed script to extract Xalan-Java 2 commits from the repository into commits.xml
+         The following operation transforms commits.xml (just including source code commits) and 
+         puts the result in xdocs/sources/xalan for inclusion in the readme.xml -->      
+    <echo message="Transform commits.xml and put the result in ${xdocs.dir}"/>
+    <java fork="yes" classname="${xalan.cmdline.class}" >
+      <classpath refid="docs.class.path" />
+      <arg line="-in commits.xml -xsl ${xdocs.style}/stylesheets/done.xsl -out ${xdocs.DONE.file} -param xsltcdone ${xdocs.XSLTCDONE.file}"/>
+    </java>
+    <echo message="Generate Xalan-J 2.x design document"/>
+    <java fork="yes" classname="${doc.generator}" >
+      <classpath refid="docs.class.path" />
+      <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=./build/docs/design/
+                 ./xdocs/sources/xalandesign.xml ./xdocs/style"/>
+    </java>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compile the DTM implementation and xml utilities                    -->
+  <!-- =================================================================== -->
+    <target name="xml.compile" depends="prepare,serializer.jar">
+    <echo message="Compiling DTM implementation and utilities" />
+    <javac srcdir="${src.dir}"
+           destdir="${build.classes}"
+           debug="${build.debug}" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <include name="${apachexml.reldir}/**/*.java" />
+      <!-- exclude the serializer -->
+      <exclude name="${serializer.reldir}/**/*.java" />      
+      <!-- Exclude file that depends upon presence of Xerces in build path -->
+      <exclude name="**/IncrementalSAXSource_Xerces.java" 
+        unless="xerces.present"	 />
+      <classpath refid="compile.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
+    <copy todir="${build.classes}">
+      <fileset dir="${src.dir}" 
+          includes="${apachexml.reldir}/**/*.properties" 
+          excludes="${serializer.reldir}/**/*.properties"
+      />
+    </copy>  
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Compile the Xalan interpreter source tree                           -->
+  <!-- =================================================================== -->
+  <target name="xalan-interpretive.compile" depends="xml.compile"
+    description="Compile the Xalan interpretive classes (skips XSLTC)" >
+    <echo message="Compiling Xalan interpretive classes" />
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           debug="${build.debug}" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <include name="${xpath.reldir}/**/*.java" />
+      <include name="${domxpath.reldir}/**/*.java" />
+      <include name="${xalan.reldir}/**/*.java" />
+      <exclude name="${xsltc.reldir}/**/*.java" />
+      <classpath refid="compile.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+      <sourcepath refid="compile.source.path" />
+    </javac>
+    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
+    <copy todir="${build.classes}">
+      <fileset dir="${src.dir}" includes="**/*.properties,META-INF/services/*" excludes="**/XSLTInfo.properties"/>
+    </copy>  
+    <filter token="impl.version" value="${impl.version}"/>
+    <copy todir="${build.classes}/org/apache/xalan/res" file="${XSLTInfo.props}" filtering="true"/>
+  </target>
+  
+  <!-- Compile all java sources (Xalan interpretive and XSLTC) -->
+  <target name="compile" depends="xalan-interpretive.compile,xsltc.compile"
+    description="Compile all java source files (Xalan interpretive + XSLTC)" >
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compile just the XSLTC compiler portion                             -->
+  <!-- =================================================================== -->
+  <path id="xsltc.class.path">
+    <pathelement location="${xmlapis.jar}" />
+    <pathelement location="${build.serializer.jar}" />
+    <pathelement location="${bcel.jar}" />
+    <pathelement location="${jlex.jar}" />
+    <pathelement location="${java_cup.jar}" />
+    <pathelement location="${runtime.jar}" />
+    <!-- build.classes needed for 
+         org.apache.xalan.xsltc.util.JavaCupRedirect -->
+    <pathelement location="${build.classes}" />
+    <pathelement path="${java.class.path}" />
+  </path>
+
+  <!-- Attempt to determine dependency info for generated sources -->
+  <target name="xsltc.prepare" depends="prepare" >
+    <!-- The first step compiles the utils directory, which includes 
+         a special wrapper for the xsltc.codegen / java_cup step next. -->
+    <echo message="Compiling XSLTC utilities"/>
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           includes="${xsltc.reldir}/util/**/*.java"
+           debug="${build.debug}"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="xsltc.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+    <!-- These tricky uptodate statements hopefully determine if we 
+         actually need to generate the java_cup and jlex files 
+         in the two sub-targets below
+    -->
+    <uptodate property="xsltc.java_cup.not_needed" targetfile="${generated.xpathparser}" >
+      <srcfiles dir="${src.dir}/${xsltc.reldir}/compiler" includes="xpath.cup" />
+    </uptodate>
+
+    <uptodate property="xsltc.jlex.not_needed" targetfile="${generated.xpathlexer}" >
+      <srcfiles dir="${src.dir}/${xsltc.reldir}/compiler" includes="xpath.lex" />
+    </uptodate> 
+    
+    <!-- Determine whether the support jars are already expanded -->
+    <available file="${build.classes}/org/apache/bcel"     type="dir" property="xsltc.bcel_jar.not_needed" />
+    <available file="${build.classes}/JLex"                type="dir" property="xsltc.jlex_jar.not_needed" />
+    <available file="${build.classes}/java_cup/Main.class" type="file" property="xsltc.java_cup_jar.not_needed" />
+    <available file="${build.classes}/java_cup/runtime"    type="dir" property="xsltc.runtime_jar.not_needed" />
+    <available file="${build.classes}/org/apache/regexp"   type="dir" property="xsltc.regexp_jar.not_needed" />
+  </target>
+
+  <!-- Generate the XPath parser sources for xsltc if needed -->
+  <target name="xsltc.java_cup" depends="xsltc.prepare" unless="xsltc.java_cup.not_needed">
+    <!-- The second step generates sym.java and XPathParser.java. -->
+    <echo message="java_cup preparsing"/>
+    <java fork="yes" failonerror="true" 
+       classname="org.apache.xalan.xsltc.util.JavaCupRedirect" >
+      <classpath refid="xsltc.class.path" />
+      <!-- need to bootclasspath java_cup for JDKs that include JavaCupRedirect -->
+      <jvmarg value="-Xbootclasspath/p:${java_cup.jar}${path.separator}${runtime.jar}"/>
+      <!-- We're using JavaCupRedirect to call the java_cup application -->
+      <arg line="-parser XPathParser -expect 0 
+         -stdin ${src.dir}/${xsltc.reldir}/compiler/xpath.cup"/>
+    </java>
+    <echo message="java_cup move output files"/>
+    <move file="XPathParser.java" tofile="${generated.xpathparser}"/>
+    <move file="sym.java" tofile="${generated.xpathsym}"/>
+  </target>
+  
+  <!-- Generate the XPath lexer sources for xsltc if needed -->
+  <target name="xsltc.jlex" depends="xsltc.java_cup" unless="xsltc.jlex.not_needed">
+    <!-- The third step generates XPathLexer.java. The lexiographical analyser
+    has to be generated after sym.java, so order is important. -->
+    <echo message="JLex preparsing"/>
+    <java fork="yes" failonerror="true" classname="JLex.Main" >
+      <classpath refid="xsltc.class.path" />
+      <arg line="-static ${src.dir}/${xsltc.reldir}/compiler/xpath.lex"/>
+    </java>
+    <echo message="JLex move output file"/>
+    <move file="${src.dir}/${xsltc.reldir}/compiler/xpath.lex.java" tofile="${generated.xpathlexer}"/>
+  </target>
+
+  <!-- Compile the main XSLTC classes -->
+  <target name="xsltc.compile" depends="xsltc.java_cup,xsltc.jlex,xml.compile"
+    description="Compile just the XSLTC classes" >
+    <echo message="Compiling remaining XSLTC classes"/>
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           includes="${xsltc.reldir}/**/*.java"
+           excludes="${serializer.reldir}/**/*.java"
+           debug="${build.debug}"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}"> 
+      <classpath refid="xsltc.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+  </target>
+
+  <!-- Compile just the XSLTC classes w/o JLex, JCup recompilation -->
+  <target name="xsltc.fcompile" depends="xml.compile"
+    description="Compile just the XSLTC classes w/o JLex, JCup recompilation" >
+    <echo message="Compiling remaining XSLTC classes"/>
+    <javac srcdir="${src.dir}" 
+           destdir="${build.classes}"
+           includes="${xsltc.reldir}/**/*.java"
+           debug="${build.debug}"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="xsltc.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+  </target>
+
+  <!-- Jar up the XSLTC classes w/o the support jars -->
+  <target name="xsltc.unbundledjar" depends="xsltc.compile"
+    description="Jar just the xsltc.jar file" >
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>        
+    <copy todir="${build.dir}" file="${manifest.xsltc.mf}" filtering="true"/>
+    <jar jarfile="${build.xsltc.jar}" manifest="${build.dir}/manifest.xsltc" basedir="${build.classes}" >
+      <patternset><!-- relative to jar/@basedir -->
+        <include name="org/apache/xml/**" />
+        <include name="${xsltc.reldir}/**/*" />
+        <exclude name="org/apache/xalan/xsltc/util/JavaCupRedirect*" />
+      </patternset>
+    </jar>
+  </target>
+
+  <!-- Copy license and readme files for XSLTC support jars -->
+  <target name="xsltc.copy-licenses" depends="xsltc.prepare">
+  </target>
+
+  <!-- A parametrized target which is used to copy and expand a XSLTC support jar -->
+  <target name="xsltc.copy-deps-jar" unless="${param_unless}">
+    <!-- copy the jar file to the build/classes directory -->
+    <copy todir="${build.classes}" file="${lib.dir}/${param_jar_name}"/>
+    
+    <!-- unjar the jar file -->
+    <unjar src="${build.classes}/${param_jar_name}" dest="${build.classes}" />
+    
+    <!-- remove the jar file -->
+    <delete file="${build.classes}/${param_jar_name}" />
+  </target>
+  
+  <!-- Copy and expand the XSLTC support jars if needed -->
+  <target name="xsltc.copy-deps-jars" depends="xsltc.copy-licenses">
+    <echo message="Copying XSLTC support jars" />
+    <!-- copy the 3rd party support jar files -->
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.bcel_jar.not_needed" />
+      <param name="param_jar_name" value="${bcel.jar.name}" />
+    </antcall>
+
+<!-- We don't need to package the JLex or java_cup jars in the xalan.jar.
+     These are only required for building XSLTC, not for using XSLTC.
+     
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.jlex_jar.not_needed" />
+      <param name="param_jar_name" value="${jlex.jar.name}" />
+    </antcall>
+
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.java_cup_jar.not_needed" />
+      <param name="param_jar_name" value="${java_cup.jar.name}" />
+    </antcall>
+-->
+
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.runtime_jar.not_needed" />
+      <param name="param_jar_name" value="${runtime.jar.name}" />
+    </antcall>
+
+    <antcall target="xsltc.copy-deps-jar">
+      <param name="param_unless" value="xsltc.regexp_jar.not_needed" />
+      <param name="param_jar_name" value="${regexp.jar.name}" />
+    </antcall>
+    
+    <!-- remove the old META-INF/MANIFEST.MF file -->
+    <delete file="${build.classes}/META-INF/MANIFEST.MF" quiet="true"/>  
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates the xsltc jar including all support jars                    -->
+  <!-- =================================================================== -->
+  <target name="xsltc.jar" depends="xsltc.compile,xsltc.copy-deps-jars"
+     description="Jar xsltc,xml,BCEL,JLex,java_cup,runtime and jakarta regexp">
+
+    <!-- create new META-INF dir w/ transformer factory default -->
+    <!-- GTM: comment this out so that bundled xsltc.jar does not have
+         service provider default until further notice 2/20/2002
+    <mkdir dir="${build.dir}/xsltctmp/META-INF"/>
+    <mkdir dir="${build.dir}/xsltctmp/META-INF/services"/>
+    <copy todir="${build.dir}/xsltctmp/META-INF/services"
+      file="${src.dir}/${xsltc.reldir}/javax.xml.transform.TransformerFactory"
+    />
+    -->
+
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.xsltc.mf}" filtering="true"/>
+    
+    <!-- make bundled jar named xsltc.jar -->
+    <jar jarfile="${build.dir}/xsltc.jar" manifest="${build.dir}/manifest.xsltc" >
+      <fileset dir="${build.classes}">
+        <include name="org/apache/xalan/xsltc/**"/>
+        <exclude name="org/apache/xalan/xsltc/util/JavaCupRedirect*" />
+      </fileset>
+      <fileset dir="${build.classes}" includes="org/apache/xml/**" 
+                                      excludes="${serializer.reldir}/**" />
+      <fileset dir="${build.classes}" includes="org/apache/bcel/**" />
+      <fileset dir="${build.classes}" includes="JLex/**" />
+      <fileset dir="${build.classes}" includes="java_cup/**" />
+      <fileset dir="${build.classes}" includes="org/apache/regexp/**" />
+    </jar>
+
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the xalan interpretive jar                                  -->
+  <!-- =================================================================== -->
+  <target name="xalan-interpretive.jar" depends="xalan-interpretive.compile"
+    description="Jar up everything in Xalan interpretive (without XSLTC)" >
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.xalan-interpretive.mf}" filtering="true"/>
+    <jar jarfile="${build.xalan-interpretive.jar}" manifest="${build.dir}/manifest.xalan-interpretive" basedir="${build.classes}" >
+      <patternset><!-- relative to jar/@basedir -->
+        <include name="${apachexml.reldir}/**/*" />
+        <include name="${xpath.reldir}/**/*" />
+        <include name="${xalan.reldir}/**/*" />
+        <include name="${domxpath.reldir}/**/*" />        
+        <include name="META-INF/services/*" />
+        <exclude name="${xsltc.reldir}/**/*" />
+        <exclude name="${serializer.reldir}/**/*" />
+      </patternset>
+    </jar>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the xalan unbundled jar (Xalan interpretive + XSLTC -       -->
+  <!-- support jars                                                        -->
+  <!-- =================================================================== -->
+  <target name="unbundledjar" depends="xalan-interpretive.compile,xsltc.compile"
+    description="Jar up Xalan and XSLTC, without the XSLTC dependencies" >
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.mf}" filtering="true"/>
+    <jar jarfile="${build.xalan-unbundled.jar}" manifest="${build.dir}/MANIFEST.MF" basedir="${build.classes}" >
+      <patternset>
+        <include name="${apachexml.reldir}/**/*" />
+        <include name="${xpath.reldir}/**/*" />
+        <include name="${xalan.reldir}/**/*" />
+        <include name="META-INF/services/*" />
+        <exclude name="${xsltc.reldir}/util/JavaCupRedirect*" />
+        <exclude name="${serializer.reldir}/**/*.*" />
+      </patternset>    
+    </jar>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates one big xalan jar (Xalan interpretive + XSLTC + support jars) -->
+  <!-- =================================================================== -->
+  <target name="jar" depends="xalan-interpretive.compile,xsltc.compile,xsltc.copy-deps-jars"
+    description="Jar up everything (Xalan, XSLTC and XSLTC dependencies)" >
+    
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${impl.version}"/>
+    <filter token="java.version" value="${java.version}"/>
+    <filter token="java.vendor" value="${java.vendor}"/>     
+    <copy todir="${build.dir}" file="${manifest.mf}" filtering="true"/>
+    
+    <!-- make bundled jar named xalan.jar -->
+    <jar jarfile="${build.xalan.jar}" manifest="${build.dir}/MANIFEST.MF"
+         basedir="${build.classes}" >
+       <patternset>
+         <exclude name="${xsltc.reldir}/util/JavaCupRedirect*" />
+         <exclude name="${serializer.reldir}/**/*" />
+       </patternset>
+    </jar>  
+ 
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Default all target simply Creates the xalan JAR                     -->
+  <!-- =================================================================== -->
+  <target name="all" depends="serializer.jar,jar"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="Redirect to jar target; please provide input on desired functionality of this target"/>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Compiles the samples (servlet excluded) and jars the class files    -->  
+  <!-- =================================================================== -->
+  <target name="samples" depends="jar,samples.nojardepends,xsltc.samples"/>
+
+  <target name="samples.nojardepends" depends="xsltc.samples.nojardepends"
+    description="Compile and jar the samples (except servlet)" >
+    <property name="exclude" value="*.xml,*.xsl,*.txt,*.html,*.properties,*.out"/>
+    <mkdir dir="${build.samples}"/>
+    <!-- Since the samples are packageless, they must be compiled separately. -->   
+    <javac srcdir="${samples.dir}/SimpleTransform" 
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/UseStylesheetPI"   
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/UseStylesheetParam" 
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/SAX2SAX"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/DOM2DOM"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/Pipe"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/UseXMLFilters"  
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/Trace"   
+           destdir="${build.samples}"  excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/ApplyXPath"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>
+    <javac srcdir="${samples.dir}/ApplyXPathDOM"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>             
+    <javac srcdir="${samples.dir}/trax"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/extensions"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>           
+    <javac srcdir="${samples.dir}/Validate"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path"
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac> 
+    <javac srcdir="${samples.dir}/TransformThread"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>
+    <javac srcdir="${samples.dir}/XPathAPI"  
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <classpath refid="samples.class.path" />
+    </javac>               
+    <jar jarfile="${build.samples.jar}" basedir="${build.samples}"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles all samples that require extra standard components in      -->
+  <!-- order to compile.                                                   -->
+  <!-- =================================================================== -->
+  <target name="extra.std.samples"
+          depends="servlet,xsltc.applet,xsltc.ejb,xsltc.servlet"/>
+          
+  <target name="extra.std.samples.nojardepends"
+          depends="servlet.jardepends,xsltc.applet.nojardepends,
+                   xsltc.ejb.jardepends,xsltc.servlet.jardepends"/>
+
+  <!-- =================================================================== -->
+  <!-- Compiles all samples that require extra non-standard components in  -->
+  <!-- order to compile.                                                   -->
+  <!-- =================================================================== -->
+  <target name="extra.nonstd.samples" depends="xsltc.brazil"/>
+  
+  <target name="extra.nonstd.samples.nojardepends" depends="xsltc.brazil.jardepends"/>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the sample servlet and jars the class files.               --> 
+  <!-- The javax.servlet and javax.servlet.http packages                   -->
+  <!-- must be on the classpath                                            -->
+  <!-- =================================================================== -->
+  <target name="servlet" depends="jar,servlet.jardepends"/>
+
+  <target name="servlet.jardepends"
+    description="Compile and jar the servlet samples in xalanservlet.war" >
+     <echo message="To compile the sample servlets, javax.servlet and javax.servlet.http must be on the classpath"/>   
+     <mkdir dir="${build.servlet}"/>
+     <mkdir dir="${build.servlet}/WEB-INF/classes/servlet"/>
+     <mkdir dir="${build.servlet}/WEB-INF/lib"/>
+     <javac srcdir="${samples.dir}/servlet"
+            destdir="${build.servlet}/WEB-INF/classes"
+            debug="${build.debug}"
+            bootclasspathref="xslt.boot.class.path" 
+     	    target="${compiler.target}" source="${compiler.source}"
+     	    nowarn="${compiler.nowarn}">
+        <classpath refid="samples.class.path" />
+        <classpath location="${servlet-api.jar}" />
+     </javac>           
+      <copy todir="${build.servlet}/WEB-INF/classes/servlet">
+        <fileset dir="${samples.dir}/servlet" includes="media.properties"/>
+      </copy>  		         
+      <copy todir="${build.servlet}/WEB-INF">
+        <fileset dir="${samples.dir}/servlet" includes="web.xml"/>
+      </copy>
+      <copy todir="${build.servlet}">
+        <fileset dir="${samples.dir}/servlet" 
+        		includes="birds.xml, birds.xsl, booklist1.xsl, 
+        		booklist2.xsl, catalog.xml, fooparam.xml, fooparam.xsl, jspSample.jsp"/>
+      </copy>
+      <copy todir="${build.servlet}/WEB-INF/lib">
+      	<fileset dir="${lib.dir}" includes="${parser.jar.name}, ${xmlapis.jar.name}"/>
+      </copy>
+      <copy file="${build.xalan.jar}" todir="${build.servlet}/WEB-INF/lib" />
+    <jar jarfile="${build.servlet.war}" 
+         basedir="${build.servlet}" 
+         includes="**"/>
+  </target>
+ 
+  <!-- =================================================================== -->
+  <!-- Compiles (does not jar) the translet samples.                       -->
+  <!-- For time being, classes are generated in place.                     -->
+  <!-- To run these samples, add xsltc.jar, runtime.jar, bcel.jar,         -->
+  <!-- and java_cup.jar (all in the bin directory) to the classpath        --> 
+  <!--                                                                     -->
+  <!-- When we have straightened out classpath issues,                     -->
+  <!-- add samples in CompiledApplet, CompiledBrazil, CompiledEJB and      -->
+  <!-- CompiledServlet.                                                    -->
+  <!-- =================================================================== -->
+  <target name="xsltc.samples" depends="jar,xsltc.samples.nojardepends"/>
+
+  <target name="xsltc.samples.nojardepends">
+    <mkdir dir="${build.samples}"/>
+    <javac srcdir="${samples.dir}/translets"
+           classpath="${java.class.path}:${build.xalan.jar}" 
+           destdir="${build.samples}" excludes="${exclude}" 
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+  	       target="${compiler.target}" source="${compiler.source}"
+  	       nowarn="${compiler.nowarn}"/>
+    <javac srcdir="${samples.dir}/CompiledJAXP"
+           destdir="${build.samples}" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+  	       target="${compiler.target}" source="${compiler.source}"
+  	       nowarn="${compiler.nowarn}"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC applet example and jars the class files.         --> 
+  <!-- =================================================================== -->
+  <target name="xsltc.applet" depends="jar,xsltc.applet.nojardepends"/>
+
+  <target name="xsltc.applet.nojardepends">
+    <mkdir dir="${build.samples}/CompiledApplet"/>
+    <javac srcdir="${samples.dir}/CompiledApplet"
+           destdir="${build.samples}/CompiledApplet" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+  	       nowarn="${compiler.nowarn}"/>
+    <jar jarfile="${build.xsltc.applet.jar}"
+         basedir="${build.samples}/CompiledApplet"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC brazil example and jars the class files.         --> 
+  <!-- =================================================================== -->
+  <target name="xsltc.brazil" depends="jar,xsltc.brazil.jardepends"/>
+
+  <target name="xsltc.brazil.jardepends">
+    <mkdir dir="${build.samples}/CompiledBrazil"/>
+    <javac srcdir="${samples.dir}/CompiledBrazil"
+           destdir="${build.samples}/CompiledBrazil" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+    	<classpath location="${brazil.jar}"/>
+  	</javac>
+    <jar jarfile="${build.xsltc.brazil.jar}"
+         basedir="${build.samples}/CompiledBrazil"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC EJB example and jars the class files.            --> 
+  <!-- ejb.jar must be on the classpath to compile this sample.            -->
+  <!-- EJB 2.0 can be found at http://java.sun.com/products/ejb/docs.html  -->
+  <!-- =================================================================== -->
+  <target name="xsltc.ejb" depends="jar,xsltc.ejb.jardepends"/>
+
+  <target name="xsltc.ejb.jardepends">
+    <mkdir dir="${build.samples}/CompiledEJB"/>
+    <javac srcdir="${samples.dir}/CompiledEJB"
+           destdir="${build.samples}/CompiledEJB" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+    	<classpath location="${javaee-api.jar}"/>
+    </javac>
+    <jar jarfile="${build.xsltc.ejb.jar}"
+         basedir="${build.samples}/CompiledEJB"
+         includes="*.class"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Compiles the XSLTC servlet example and jars the class files.        --> 
+  <!-- =================================================================== -->
+  <target name="xsltc.servlet" depends="jar,xsltc.servlet.jardepends" />
+
+  <target name="xsltc.servlet.jardepends">
+    <mkdir dir="${build.samples}/CompiledServlet"/>
+    <javac srcdir="${samples.dir}/CompiledServlet"
+           destdir="${build.samples}/CompiledServlet" excludes="${exclude}"
+           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" 
+    	   target="${compiler.target}" source="${compiler.source}" 
+    	   classpath="${build.xalan.jar}:${servlet-api.jar}"
+    	   nowarn="${compiler.nowarn}">
+    </javac>
+    <jar jarfile="${build.xsltc.servlet.jar}"
+         basedir="${build.samples}/CompiledServlet"
+         includes="*.class"/>
+  </target>
+
+ 
+  <!-- =================================================================== -->
+  <!-- Generate HTML docs                                                  -->
+  <!-- =================================================================== -->
+  <target name="docs" depends="jar,docs.nojardepends,xsltc.docs"/>
+  
+  <target name="docs.nojardepends" depends="prepare.docs.nojardepends,autodocs"  
+    description="Build the documentation (overview, readme, etc.)" >
+    <echo message="docs is human-usable target with dependencies"/>  
+  </target>
+  
+  <target name="autodocs">
+    <echo message="autodocs is for automated build process, without dependencies"/>   
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+       <arg line="targetDirectory=${build.docs} ${xdocs.book} ${xdocs.style}"/>
+    </java>	 
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the API documentation                                       -->
+  <!-- =================================================================== -->
+  <target name="javadocs" depends="jar,javadocs.nojardepends"/>
+  
+  <target name="javadocs.nojardepends" depends="prepare.docs.nojardepends,autojavadocs"
+    description="Build the Javadocs for Xalan 2.x and jaxp sources" >
+    <echo message="javadocs is human-usable target with dependencies"/> 
+    
+    <!-- Expand jaxp sources (JAXP 1.1, DOM 2, and SAX 2) into source tree for 
+         inclusion in the Javadoc. -->           
+    <!-- Note this is into the src area.-->                                          
+    <gunzip src="${xml-commons-srcs.tar.gz}" dest="${build.dir}" />                                                                         
+    <untar src="${xml-commons-srcs.tar}" 
+           dest="${src.dir}">
+       <patternset>
+         <include name="**.java"/>
+       </patternset>
+    </untar>
+           
+    <delete file="${xml-commons-srcs.tar}"/>
+         
+    <antcall target="autojavadocs"/>
+     
+    <!-- remove the jaxp sources -->
+    <delete dir="${src.dir}/javax" />
+    <delete dir="${src.dir}/org/w3c" />
+    <delete dir="${src.dir}/org/xml" />
+    <delete dir="${src.dir}/org/apache/xmlcommons" />
+    <delete file="${src.dir}/manifest.commons" />
+         
+  </target>
+
+  <target name="autojavadocs" 
+          depends="autojavadocs-1.4-or-higher-if,autojavadocs-non1.4-or-higher-if">
+    <echo message="autojavadocs is for automated build process, without dependencies"/>
+  </target>
+
+  <target name="check-using-java-1.4-or-higher">
+    <condition property="using-java-1.4-or-higher">
+      <not>
+          <or>
+            <equals arg1="${ant.java.version}" arg2="1.1"/>
+            <equals arg1="${ant.java.version}" arg2="1.2"/>
+            <equals arg1="${ant.java.version}" arg2="1.3"/>
+          </or>
+      </not>
+    </condition>
+  </target>
+
+  <target name="autojavadocs-1.4-or-higher-if" if="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="autojavadocs-1.4-or-higher"/>
+  </target>
+
+  <target name="autojavadocs-non1.4-or-higher-if" unless="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="autojavadocs-non1.4-or-higher"/>
+  </target>
+
+  <target name="autojavadocs-1.4-or-higher">
+    
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         additionalparam="-breakiterator"
+         destdir="${build.apidocs}"
+         public="true"
+         sourcepath="${src.dir}"
+         overview="${src.dir}/javadocOverview.html"
+         packagenames="org.apache.*,org.xml.*,org.w3c.*,javax.xml.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} ${impl.version}" 
+         doctitle="${Name-in-docs} ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <taglet name="xalan2jtaglet.XSLUsageTag" path="${taglet.jar}"/>
+          <group title="Transformations API for XML (TrAX)" packages="javax.xml.transform*"/>
+          <group title="Java API for XML Parsing" packages="javax.xml.parsers"/>
+          <group title="Xalan Core"
+                 packages="org.apache.xalan.processor:org.apache.xalan.templates:org.apache.xalan.transformer"/>
+          <group title="XPath" packages="org.apache.xpath*"/>
+          <group title="Document Table Model (DTM)" packages="org.apache.xml.dtm*"/>          
+          <group title="Utilities" packages="org.apache.xml.utils*"/>
+          <group title="Xalan Other" packages="org.apache.xalan.client:org:org.apache.xalan.extensions:org.apache.xalan.res:org.apache.xalan.stree:org.apache.xalan.trace:org.apache.xalan.xslt"/>
+          <group title="Xalan Extensions" packages="org.apache.xalan.lib*"/>
+          <group title="Serializers" packages="org.apache.xml.serialize*, org.apache.xalan.serialize"/>
+          <group title="SAX 2" packages="org.xml.sax*"/>
+          <group title="DOM 2" packages="org.w3c.dom*"/>
+          <group title="XSLTC Core"
+                 packages="org.apache.xalan.xsltc*"/>
+    </javadoc>
+  </target>
+
+  <target name="autojavadocs-non1.4-or-higher">
+      
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         public="true"
+         sourcepath="${src.dir}"
+         overview="${src.dir}/javadocOverview.html"
+         packagenames="org.apache.*,org.xml.*,org.w3c.*,javax.xml.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} ${impl.version}" 
+         doctitle="${Name-in-docs} ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <doclet name="xalanjdoc.Standard" path="${doclet.jar}">
+            <param name="-d" value="${build.apidocs}"/>
+          </doclet>
+          <group title="Transformations API for XML (TrAX)" packages="javax.xml.transform*"/>
+          <group title="Java API for XML Parsing" packages="javax.xml.parsers"/>
+          <group title="Xalan Core"
+                 packages="org.apache.xalan.processor:org.apache.xalan.templates:org.apache.xalan.transformer"/>
+          <group title="XPath" packages="org.apache.xpath*"/>
+          <group title="Document Table Model (DTM)" packages="org.apache.xml.dtm*"/>          
+          <group title="Utilities" packages="org.apache.xml.utils*"/>
+          <group title="Xalan Other" packages="org.apache.xalan.client:org:org.apache.xalan.extensions:org.apache.xalan.res:org.apache.xalan.stree:org.apache.xalan.trace:org.apache.xalan.xslt"/>
+          <group title="Xalan Extensions" packages="org.apache.xalan.lib*"/>
+          <group title="Serializers" packages="org.apache.xml.serialize*, org.apache.xalan.serialize"/>
+          <group title="SAX 2" packages="org.xml.sax*"/>
+          <group title="DOM 2" packages="org.w3c.dom*"/>
+          <group title="XSLTC Core"
+                 packages="org.apache.xalan.xsltc*"/>
+    </javadoc>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Various targets to clean the build tree                             -->
+  <!-- =================================================================== -->
+  <target name="distclean" depends="clean"
+    description="Clean everything, including dist/jar/docs/xsltc.*" >
+    <delete dir="${dist.dir}"/>
+  </target>
+
+  <target name="clean" depends="xsltc.clean"
+    description="Clean the ${build.dir} tree and doc outputs" >
+    <delete dir="${build.dir}"/>
+    <delete dir="${site.root}"/>
+    <delete dir="${xalan.apache.org.site.root}"/>    
+    <delete quiet="true">
+      <fileset dir="${xdocs.style}" excludes="${xalanonly-styledocs}"/>
+    </delete>
+    <delete file="${xdocs.DONE.file}"/>
+    <delete file="${xdocs.XSLTCDONE.location}"/>
+    <delete file="${src.dir}/${xalan.reldir}/Version.java"/>
+    <delete file="${src.dir}/${serializer.reldir}/Version.java"/>
+    <delete file="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.java"/>
+    <delete file="${xdocs.dir}/sources/entities.ent"/>       
+    <!-- Also delete files expanded from ${xml-commons-srcs.tar.gz}-->
+    <delete dir="${src.dir}/javax" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/org/xml" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/org/w3c" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/xdocs/style/graphics" includeEmptyDirs="true" quiet="true"/>
+    <delete dir="${src.dir}/xdocs/style/resources" includeEmptyDirs="true" quiet="true"/>    
+  </target>
+ 
+  <target name="xsltc.clean"
+    description="Clean miscellaneous generated sources from xsltc.compile" >
+    <delete file="${generated.xpathparser}" />
+    <delete file="${generated.xpathsym}" />
+    <delete file="${generated.xpathlexer}" />
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Install/Uninstall targets - not currently applicable                -->
+  <!-- =================================================================== -->
+  <target name="install"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="install target currently not supported in ${Name-in-docs}; try jar or dist instead"/>
+  </target>
+  <target name="uninstall"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="uninstall target currently not supported in ${Name-in-docs}; try distclean instead"/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates a distribution that depends only on standard pieces         -->
+  <!-- =================================================================== -->
+  <target name="dist" depends="build.std.dist,autodist"
+              description="Create a .zip/.tar.gz distribution module containing
+                           all components without dependencies on non-standard
+                           jars that are not part of the build system." >
+    <echo message="dist is human-useable target for distribution, with only standard dependencies"/>
+  </target>
+
+  <target name="dist-nodocs" depends="build.std.dist-nodocs,autodist-nodocs"
+              description="Create a .zip/.tar.gz distribution module containing
+                           all components without dependencies on non-standard
+                           jars that are not part of the build system." >
+    <echo message="dist-nodocs is human-useable target for distribution, with only standard dependencies and no documentation "/>
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates a complete distribution in which the xalan.jar contains     -->
+  <!-- the interpretive, compiled and the common packages                  -->
+  <!-- =================================================================== -->
+  <target name="fulldist" depends="build.nonstd.dist,autodist"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist is human-useable target for distribution, with all dependencies"/>
+  </target>
+  
+  <target name="fulldist-nodocs" depends="build.nonstd.dist-nodocs,autodist-nodocs"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist-nodocs is human-useable target for distribution, with all dependencies and no documentation"/>
+  </target>  
+
+  <!-- =================================================================== -->
+  <!-- Creates a complete distribution with separate xalan.jar and         -->
+  <!-- xsltc.jar.  The common packages are contained in each jar.          -->
+  <!-- =================================================================== -->
+  <target name="fulldist-separatejars" depends="build.nonstd-separatejars.dist,autodist"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist is human-useable target for distribution, with all dependencies"/>
+  </target>
+
+  <target name="fulldist-separatejars-nodocs" depends="build.nonstd-separatejars.dist-nodocs,autodist-nodocs"
+          description="Create a .zip/.tar.gz distribution module containing
+                       all components.">
+    <echo message="fulldist-separatejars-nodocs is human-useable target for distribution, with all dependencies and no documentation"/>
+  </target>
+  
+  <target name="build.std.dist" depends="build.std.parts">
+    <property name="has.nonstd.parts" value="false"/>
+  </target>
+  <target name="build.std.dist-nodocs" depends="build.std.parts-nodocs">
+    <property name="has.nonstd.parts" value="false"/>
+  </target>  
+
+  <target name="build.nonstd.dist" depends="build.std.parts,build.nonstd.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>
+  <target name="build.nonstd.dist-nodocs" depends="build.std.parts-nodocs,build.nonstd.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>  
+  
+  <target name="build.nonstd-separatejars.dist" depends="build.std-separatejars.parts,
+                                                         build.nonstd-separatejars.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>
+  <target name="build.nonstd-separatejars.dist-nodocs" depends="build.std-separatejars.parts-nodocs,
+                                                                build.nonstd-separatejars.parts">
+    <property name="has.nonstd.parts" value="true"/>
+  </target>
+
+  <target name="build.std.parts"
+          depends="jar,docs,javadocs,samples,extra.std.samples,xsltc.docs"/>
+          
+  <target name="build.std.parts-nodocs"
+          depends="jar,samples,extra.std.samples"/>          
+          
+  <target name="build.std-separatejars.parts"
+          depends="xalan-interpretive.jar,xsltc.jar,
+                   docs.nojardepends,javadocs.nojardepends,
+                   samples.nojardepends,extra.std.samples.nojardepends,
+                   xsltc.docs"/>
+                    
+  <target name="build.std-separatejars.parts-nodocs"
+          depends="xalan-interpretive.jar,xsltc.jar,
+                   samples.nojardepends,extra.std.samples.nojardepends"/>                            
+          
+  <target name="build.nonstd.parts" depends="extra.nonstd.samples"/>
+  <target name="build.nonstd-separatejars.parts" depends="extra.nonstd.samples.nojardepends"/>
+
+  <!-- =================================================================== -->
+  <!-- Autodist targets.  Used by the distribution targets.                -->
+  <!-- =================================================================== -->  
+  <target name="autodist-mkdirs">
+    <mkdir dir="${dist.dir}"/>
+    <mkdir dir="${dist.dir}/lib"/>
+  	<mkdir dir="${dist.dir}/lib/endorsed"/>	
+    <mkdir dir="${dist.dir}/samples"/>       
+    <mkdir dir="${dist.dir}/src"/>
+    <mkdir dir="${dist.dir}/tools"/>     
+    <mkdir dir="${dist.dir}/xdocs"/>
+  </target>
+
+  <target name="autodist-mkdirs-docs">
+    <mkdir dir="${dist.dir}/docs"/>
+    <mkdir dir="${dist.dir}/docs/apidocs"/>
+  </target>
+
+  <target name="autodist-copy-files">
+
+    <!-- Copy license files to distribution root -->
+    <copy todir="${dist.dir}">
+      <fileset dir=".">
+        <include name="LICENSE.txt,NOTICE.txt"/>
+      </fileset>
+    </copy>
+
+    <!-- Copy sources and source documentation -->
+    <copy todir="${dist.dir}/src">
+      <fileset dir="${src.dir}" excludes="javax/**,org/xml/**,org/w3c/**"/><!-- exclude jaxp, sax, dom -->
+    </copy>
+    <copy todir="${dist.dir}/xdocs">
+      <fileset dir="${xdocs.dir}"/>
+    </copy>
+
+    <!-- Copy samples -->
+    <copy todir="${dist.dir}/samples">
+      <fileset dir="${samples.dir}"/>
+    </copy>
+    
+    <!-- Copy tools; used for source distribution -->    
+    <copy todir="${dist.dir}/tools">
+      <fileset dir="${tools.dir}">
+        <include name="*.*"/>
+      </fileset>
+    </copy>
+
+    <!-- 1) Copy runtime libs; used for source distribution -->    
+    <copy todir="${dist.dir}/lib">
+      <fileset dir="${lib.dir}">
+        <include name="*.*"/>
+      </fileset>
+    </copy>
+  	
+  	<!-- 2) Copy runtime libs; used for source distribution -->
+  	<copy todir="${dist.dir}/lib/endorsed">
+  	  <fileset dir="${endorsed.dir}">
+  	     <include name="*.*"/>
+  	  </fileset>
+  	</copy>
+
+    <!-- Copy built jars -->
+    <copy file="${build.dir}/xalansamples.jar" todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xalanservlet.war" todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xsltcapplet.jar"  todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xsltcbrazil.jar"  todir="${dist.dir}/samples"
+          failonerror="${has.nonstd.parts}"/>
+    <copy file="${build.dir}/xsltcejb.jar"     todir="${dist.dir}/samples"/>
+    <copy file="${build.dir}/xsltcservlet.jar" todir="${dist.dir}/samples"/>
+    
+    <copy file="${build.xalan.jar}" todir="${dist.dir}" />
+    
+    <!-- only copy the xsltc.jar file if it has been built -->
+    <copy todir="${dist.dir}">
+      <fileset dir="${build.dir}" includes="xsltc.jar"/>
+    </copy>
+    <copy file="${build.serializer.jar}" todir="${dist.dir}" />
+    
+    <copy file="${xmlapis.jar}" todir="${dist.dir}" />  
+    <copy file="${parser.jar}" todir="${dist.dir}" />
+  	
+  	<antcall target="xalan-transform-build-file-for-src-distro"/>
+  	
+  	<antcall target="xalan-tests-create-for-src-distro"/>
+
+    <copy todir="${dist.dir}">
+      <fileset dir="." includes="readme.html,KEYS,build.xml,build.sh,deprecated_build.sh,build.bat,
+      	                         commits.xml,LICENSE.txt,NOTICE.txt"/>      
+    </copy>
+  </target>
+	
+  <target name="xalan-transform-build-file-for-src-distro">
+  	<copy file="./build_srcdist_xalan.xml" todir="${dist.dir}"/>
+  	<copy file="./build_srcdist_xalan.xml" tofile="${dist.dir}/build.xml"/>
+  </target>
+	
+  <target name="xalan-tests-create-for-src-distro">
+  	<mkdir dir="${dist.dir}/xalan-test"/>
+  	<copy todir="${dist.dir}/xalan-test">
+  	  <fileset dir="${test.relpath}">
+  	    <exclude name="build.xml"/>
+  	  </fileset>	
+  	</copy>
+  	  	
+  	<copy file="./build_srcdist_xalan_tests.xml" todir="${dist.dir}"/>
+  	<copy file="./build_srcdist_xalan_tests.xml" tofile="${dist.dir}/xalan-test/build.xml"/>
+  	
+  	<delete dir="${dist.dir}/xalan-test/.git" /> 	
+  </target>
+
+  <target name="autodist-copy-files-docs">
+    <!-- Copy built documentation and javadoc -->
+    <copy todir="${dist.dir}/docs">
+      <fileset dir="${build.docs}"/>
+    </copy>
+  </target>
+
+  <target name="autodist-create-bin-packages">
+    <tar tarfile="${build.dir}/${dist.pkg}-bin.tar" >
+      <tarfileset dir="${build.dir}">
+        <patternset refid="bin-distro"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${build.dir}/${dist.pkg}-bin.tar" zipfile="${build.dir}/${dist.pkg}-bin.tar.gz"/>
+    <delete file="${build.dir}/${dist.pkg}-bin.tar" />
+
+    <zip zipfile="${build.dir}/${dist.pkg}-bin.zip" >
+      <fileset dir="${build.dir}">
+        <patternset refid="bin-distro"/>
+      </fileset>
+    </zip>
+  </target>
+  <target name="autodist-create-bin-packages-nodocs">
+    <tar tarfile="${build.dir}/${dist.pkg}-bin-nodocs.tar" >
+      <tarfileset dir="${build.dir}">
+        <patternset refid="bin-distro-nodocs"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${build.dir}/${dist.pkg}-bin-nodocs.tar" zipfile="${build.dir}/${dist.pkg}-bin-nodocs.tar.gz"/>
+    <delete file="${build.dir}/${dist.pkg}-bin-nodocs.tar" />
+
+    <zip zipfile="${build.dir}/${dist.pkg}-bin-nodocs.zip" >
+      <fileset dir="${build.dir}">
+        <patternset refid="bin-distro-nodocs"/>
+      </fileset>
+    </zip>
+  </target>
+  <target name="autodist-create-src-packages">
+    <tar tarfile="${build.dir}/${dist.pkg}-src.tar" >
+      <tarfileset dir="${build.dir}">
+        <patternset refid="src-distro"/>
+        <patternset refid="xsltc-deps-jars"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${build.dir}/${dist.pkg}-src.tar" zipfile="${build.dir}/${dist.pkg}-src.tar.gz"/>
+    <delete file="${build.dir}/${dist.pkg}-src.tar" />
+
+    <zip zipfile="${build.dir}/${dist.pkg}-src.zip" >
+      <fileset dir="${build.dir}">
+        <patternset refid="src-distro"/>
+        <patternset refid="xsltc-deps-jars"/>
+      </fileset>
+    </zip>
+  </target>
+
+  <target name="autodist">
+    <echo message="autodist is for automated build processes, without dependencies"/>
+    <antcall target="autodist-mkdirs"/>
+    <antcall target="autodist-mkdirs-docs"/>
+    <antcall target="autodist-copy-files"/>
+    <antcall target="autodist-copy-files-docs"/>
+    <antcall target="autodist-create-bin-packages"/>
+    <antcall target="autodist-create-src-packages"/>
+  </target>
+
+  <target name="autodist-nodocs">
+    <echo message="autodist-nodocs is for automated build processes, without dependencies"/>
+    <antcall target="autodist-mkdirs"/>
+    <antcall target="autodist-copy-files"/>
+    <antcall target="autodist-create-bin-packages-nodocs"/>
+    <antcall target="autodist-create-src-packages"/>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the documentation tree for the xml.apache.org/xalan-j       -->
+  <!-- website                                                             -->
+  <!-- =================================================================== -->
+  <target name="site" depends="prepare.docs,javadocs,xsltc.docs"
+    description="Build documentation for posting to the website" >
+ 
+    <mkdir dir="${site.dir}/apidocs"/>
+    <mkdir dir="${site.dir}/design"/>
+    <mkdir dir="${site.dir}/xsltc"/>    
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+       <arg line="targetDirectory=${site.dir} ${site.book} ${xdocs.style}"/>
+    </java>
+
+    <!-- put xalan design doc in the site design subdir -->
+    <copy todir="${site.dir}/design">
+      <fileset dir="${build.docs}/design"/>
+    </copy>
+    <!-- put xsltc design doc in the site xsltc subdir -->
+    <copy todir="${site.dir}/xsltc">
+      <fileset dir="${build.docs}/xsltc"/>
+    </copy>  
+    
+    <!-- put in the javadoc -->
+    <copy todir="${site.dir}/apidocs">
+      <fileset dir="${build.apidocs}"/>
+    </copy>      
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Creates the documentation tree for the xalan.apache.org website     -->
+  <!-- =================================================================== -->
+  <target name="xalan.apache.org.site"
+    description="Build documentation for posting to the website" >
+ 
+    <mkdir dir="${xalan.apache.org.site.dir}"/>
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+       <arg line="targetDirectory=${xalan.apache.org.site.dir} ${xalan.apache.org.site.book} ${xdocs.style}"/>
+    </java>
+
+  </target>  
+   
+  <!-- =================================================================== -->
+  <!-- Compiles and runs mini/smoketest from xml-xalan\xalan-test, if present. -->
+  <!-- xml-xalan is a representative folder, that can contain folders xalan-java and xalan-test -->
+  <!-- =================================================================== -->
+  <property name="test.relpath" value="xalan-test"/>
+
+  <target name="minitest" depends="prepare,minitest-run,tests-not-available" 
+    description="Run the Minitest from xml-xalan/xalan-test" >
+    <!-- This target simply asks the minitest-run worker target to 
+         actually have the Minitest run (by the xalan-test/build.xml file);
+         we then also call the tests-not-available target in case 
+         the user never checked out the tests.
+    -->
+  </target>
+  <target name="minitest-run" if="tests-available" depends="jar">
+    <echo message=" [minitest] Calling ${test.relpath}/build.xml to run the Minitest" />
+    <ant dir="${test.relpath}" antfile="build.xml" target="minitest.gump" >
+    </ant>
+  </target>
+
+  <target name="smoketest" depends="prepare,smoketest-run,tests-not-available" 
+    description="Run Smoketests (Minitest, conf, harness) from xml-xalan/xalan-test">
+  </target>
+  <target name="smoketest-run" if="tests-available" depends="jar">
+    <echo message=" [minitest] Calling ${test.relpath}/build.xml to run the Smoketest"/>
+    <ant dir="${test.relpath}" antfile="build.xml" target="smoketest.dev">
+    </ant>
+  </target>
+	
+  <target name="smoketest.xsltc" depends="prepare,smoketest.xsltc-run,tests-not-available" 
+	    description="Run smoketest.xsltc from xml-xalan/xalan-test">
+  </target>
+  <target name="smoketest.xsltc-run" if="tests-available" depends="jar">
+	 <echo message="Calling ${test.relpath}/build.xml to run the smoketest.xsltc" />
+	 <ant dir="${test.relpath}" antfile="build.xml" target="smoketest.xsltc">
+	 </ant>
+  </target>
+
+  <target name="check" depends="smoketest"><!-- 'Standardizing build.xml files' <bl...@apache.org> -->
+    <echo message="Redirect to smoketest target"/>
+  </target>
+
+  <!-- Called from various testing targets if the test dir doesn't exist. -->
+  <target name="tests-not-available" unless="tests-available" >
+    <echo message=" [tests] The tests do not seem to be present in ${test.relpath}" />
+    <echo message=" [tests] You must have checked out from CVS to run the tests," />
+    <echo message=" [tests]   it is not included in binary distributions." />
+    <echo message=" [tests] See http://xml.apache.org/xalan-j/test/ for more info." />
+  </target>
+
+  <!-- =================================================================== -->
+  <!-- Creates the xalan design document                                   -->
+  <!-- =================================================================== -->
+    <target name="xalan-j2-design">
+    <java fork="yes" 
+          classname="${doc.generator}" 
+          classpathref="docs.class.path" >
+      <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=${build.dir}/docs/design/
+      ${xdocs.dir}/sources/xalandesign.xml ${xdocs.style}"/>
+    </java>
+  </target>
+  
+  <!-- =================================================================== -->
+  <!-- Use FOP to create preliminary print (pdf) doc                       -->
+  <!-- Note: fop.jar and xml.jar (from xml-fop) must be on classpath       -->
+  <!-- This is VERY preliminary, not yet for inclusion in distribution     -->
+  <!-- =================================================================== -->
+  <!--Collate the xml sources into a single xml source with a litle extra structure -->
+  <target name="printerdocs" depends="prepare.docs">
+    <echo message="NOTICE: requires fop.jar and xml.jar on the classpath"/>
+    <java fork="yes" 
+          classname="${xalan.cmdline.class}"
+          classpathref="docs.class.path" >
+      <arg line="-xsl ${xdocs.dir}/sources/xalan-collate.xsl 
+                 -out xdocs/sources/xalan/xalan-collate.xml"/>
+    </java>
+    
+    <!-- Transform collation into Formatting Objects 
+         (with a little work on links along the way) -->    
+    <java fork="yes" 
+          classname="${xalan.cmdline.class}"
+          classpathref="docs.class.path" >
+      <arg line="-in  ${xdocs.dir}/sources/xalan/xalan-collate.xml
+                 -param resourceFile '../../sources/xalan/resources.xml'
+                 -param project ${Name-in-docs}      
+                 -xsl ${xdocs.style}/stylesheets/xml2fo.xsl 
+                 -out build/docs/xalan-collate.fo"/>
+    </java>
+    
+    <!-- Use FOP to generate a pdf file (classpath may need updating! -sc 18-Apr-01)-->
+    <java fork="yes" 
+          classname="org.apache.fop.apps.CommandLine"
+      classpath="${java.class.path}:${build.xalan.jar}:${bin.dir}/fop.jar:${bin.dir}/w3c.jar">
+      <arg line="${build.docs}/xalan-collate.fo build/docs/xalan.pdf"/>
+    </java>
+  </target>
+
+ 
+  <!-- =================================================================== -->
+  <!-- Build XSLTC design documentation. Eventually intend to incorporate -->
+  <!-- XSLTC into the Xalan book.                                         -->
+  <!-- =================================================================== -->
+
+
+  <target name="xsltc.prepare.docs" depends="prepare.docs.nojardepends">
+   <mkdir dir="${build.docs}/xsltc"/>
+   <!--   
+   <echo message="Transform xsltc_todo.xml and put the result in ${build.docs}/xsltc"/>
+   <java fork="yes" classname="${xalan.cmdline.class}">
+      <classpath refid="docs.class.path" />
+      <arg line="-in xsltc_todo.xml -xsl todo.xsl -out build/docs/xsltc/todo.html"/>
+   </java>  -->
+  </target>  
+ 
+ <target name="xsltc.docs" depends="xsltc.prepare.docs">
+   <echo message="Build the XSLTC Architectural documentation"/>
+   <java fork="yes" 
+         classname="${doc.generator}" 
+         classpathref="docs.class.path" >
+      <arg line="targetDirectory=${build.docs}/xsltc ${xdocs.dir}/sources/xsltc.xml ${xdocs.style}"/>
+    </java>	 
+    <copy todir="${build.docs}/xsltc" 
+	file="${xdocs.dir}/sources/xsltc/README.xslt" />
+    <copy todir="${build.docs}/xsltc" 
+	file="${xdocs.dir}/sources/xsltc/README.xsltc" />
+ </target>
+ 
+   <!-- pack all doc for transfer to website -->
+ <target name="pack.docs">
+    <!--tar tarfile="./build/xalan-j-docs.tar" basedir="./xml-site/target/xalan-j" includes="**"/>
+    <gzip src="./build/xalan-j-docs.tar" zipfile="./build/xalan-j-docs.tar.gz"/-->
+    <zip zipfile="./build/xalan-j-docs.zip" basedir="./xml-site/target/xalan-j" includes="**"/>
+  </target>
+
+
+<!-- ####################################################
+     # START OF SECTION TO BUILD STAND-ALONE SERIALIZER #
+     #################################################### -->
+
+  <!-- try not to use other properties directly when building the serializer -->
+  <!-- either create new values, or copy, just in case we separate into      -->
+  <!-- a totally new build.xml file                                          -->
+  <property name="serializer.build.debug"   value="${build.debug}"            />
+ 
+  
+  <!-- PROPERTIES TO MAKE THE SOURCE DISTRIBUTION ========================== -->
+  <property name="serializer.name"          value="serializer"                />
+  <property name="serializer.version"       value="${version}"                />
+  <property name="serializer.dist.file"     value="${serializer.name}-j_${serializer.version}"/>
+  <property name="serializer.dist.dir"      value="${serializer.build.dir}/${serializer.dist.file}"/>
+
+  <!-- patternset for source distribution packages -->
+  <patternset id="serializer-src-distro" >
+    <!-- some license and legal stuff -->
+    <include name="${serializer.dist.file}/LICENSE.txt"/>
+    <include name="${serializer.dist.file}/NOTICE.txt"/> 
+    <include name="${serializer.dist.file}/KEYS"/>  
+
+    <!-- The build stuff that uses Ant and this file itself, build.xml
+         this is getting into a strange loop but the source distribution
+         needs to build, and it uses this file, build.xml to do so ... -->
+    <include name="${serializer.dist.file}/build.bat"/>
+    <include name="${serializer.dist.file}/build.sh"/>
+    <include name="${serializer.dist.file}/build.xml"/>
+
+    <!-- The source code that the source distribution would build -->
+    <include name="${serializer.dist.file}/src/${serializer.reldir}/**/*.java" />
+    <include name="${serializer.dist.file}/src/${serializer.reldir}/**/*.properties" />
+    <include name="${serializer.dist.file}/src/${serializer.manifest.basename}" />
+
+    <!-- We need Ant in order to run build.xml in the source distribution -->
+    <include name="${serializer.dist.file}/tools/ant.jar"/>
+    <include name="${serializer.dist.file}/tools/antRun"/>
+    <include name="${serializer.dist.file}/tools/antRun.bat"/>
+
+    <!-- The serializer needs this jar in order to build -->
+    <include name="${serializer.dist.file}/xml-apis.jar"/>
+    
+    <!-- Ant needs an XML parser in order to read in the build.xml, so it
+         can even do the build ... this is a strange loop ... -->
+    <include name="${serializer.dist.file}/xercesImpl.jar"/>
+  </patternset>
+
+  <!-- patternset for  binary distribution packages ... if needed
+  <patternset id="serializer-bin-distro" >
+    <include name="${serializer.dist.file}/LICENSE.txt"/>
+    <include name="${serializer.dist.file}/NOTICE.txt"/>
+    <include name="${serializer.dist.file}/KEYS"/>
+    <include name="${serializer.dist.file}/${serializer.name}.jar"/>
+    <include name="${serializer.dist.file}/${xmlapis.jar.name}"/>
+    <include name="${serializer.dist.file}/${parser.jar.name}"/>    
+  </patternset>
+  -->
+  
+  <!-- =================================================================== -->
+  <!-- Creates the Serializer jar                                          -->
+  <!-- =================================================================== -->
+  <target name="serializer.jar"
+    depends="serializer.prepare,serializer.compile"
+    description="Build the serializer and created serializer.jar" >
+    <!-- Copy over the manifest, with filtering (for version number) -->
+    <filter token="impl.version" value="${serializer.impl.version}"/>
+    <filter token="java.version" value="${serializer.java.version}"/>
+    <filter token="java.vendor"  value="${serializer.java.vendor}"/>
+    <copy todir="${serializer.build.dir}" file="${serializer.manifest}" filtering="true"/>
+
+    <jar jarfile="${build.serializer.jar}"
+      manifest="${serializer.build.dir}/${serializer.manifest.basename}"
+      basedir="${serializer.build.classes}" >
+      <patternset><!-- relative to jar/@basedir -->
+        <include name="${serializer.reldir}/**/*" />
+      </patternset>
+    </jar>
+  </target>
+
+  <target name="serializer.prepare">
+    <mkdir dir="${serializer.build.dir}"/>
+    <mkdir dir="${serializer.build.classes}"/>
+  </target>
+
+  <target name="serializer.compile">
+    <echo message="Compiling the Serializer" />
+    <javac srcdir="${serializer.src.dir}"
+           destdir="${serializer.build.classes}"
+           debug="${serializer.build.debug}" 
+    	   target="${compiler.target}" source="${compiler.source}"
+    	   nowarn="${compiler.nowarn}">
+      <include name="${serializer.reldir}/**/*.java" />
+      <classpath refid="compile.class.path" />
+      <bootclasspath refid="xslt.boot.class.path" />
+    </javac>
+    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
+    <copy todir="${serializer.build.classes}">
+      <fileset dir="${serializer.src.dir}" includes="${serializer.reldir}/**/*.properties"/>
+    </copy>
+
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Creates the API documentation                                       -->
+  <!-- =================================================================== -->
+  <target name="serializer.javadocs"
+    description="Build the Javadocs for the Serializer" >
+    <echo message="javadocs is human-usable target with dependencies"/>  
+    
+    <mkdir dir="${build.docs}"/> 
+    <mkdir dir="${build.apidocs}"/>
+    <antcall target="serializer.autojavadocs"/>
+  </target>
+
+  <target name="serializer.autojavadocs" 
+          depends="serializer.autojavadocs-1.4-or-higher-if,serializer.autojavadocs-non1.4-or-higher-if">
+    <echo message="serializer.autojavadocs is for automated build process, without dependencies"/>
+  </target>
+
+  <target name="serializer.autojavadocs-1.4-or-higher-if" if="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="serializer.autojavadocs-1.4-or-higher"/>
+  </target>
+
+  <target name="serializer.autojavadocs-non1.4-or-higher-if" unless="using-java-1.4-or-higher" 
+          depends="check-using-java-1.4-or-higher">
+    <antcall target="serializer.autojavadocs-non1.4-or-higher"/>
+  </target>
+
+  <target name="serializer.autojavadocs-1.4-or-higher">
+    
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         additionalparam="-breakiterator"
+         destdir="${build.apidocs}"
+         public="true"
+         sourcepath="${src.dir}"
+         packagenames="org.apache.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} Serializer ${impl.version}" 
+         doctitle="${Name-in-docs} Serializer ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <taglet name="xalan2jtaglet.XSLUsageTag" path="${taglet.jar}"/>
+          <group title="Serializer" packages="org.apache.xml.serialize*"/>
+    </javadoc>
+  </target>
+
+  <target name="serializer.autojavadocs-non1.4-or-higher">
+    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
+    <javadoc
+         public="true"
+         sourcepath="${src.dir}"
+         packagenames="org.apache.*"
+         author="true"
+         version="true"
+         use="true"
+         windowtitle="${Name-in-docs} Serializer ${impl.version}" 
+         doctitle="${Name-in-docs} Serializer ${impl.version}"
+         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
+          <classpath refid="docs.class.path" />
+          <doclet name="xalanjdoc.Standard" path="${doclet.jar}">
+            <param name="-d" value="${build.apidocs}"/>
+          </doclet>
+          <group title="Serializer" packages="org.apache.xml.serialize*"/>
+    </javadoc>
+  </target>
+
+
+  <!-- =================================================================== -->
+  <!-- Create the serializer source distribution                           -->
+  <!-- =================================================================== -->
+  <target name="serializer-dist"
+          depends="serializer.jar"
+          description="Build the serializer source distribution .tar and .zip">
+    <antcall target="serializer-autodist-mkdirs"/>
+    <antcall target="serializer-autodist-copy-files"/>
+      <!-- <antcall target="serializer-autodist-create-bin-packages"/> -->
+    <antcall target="serializer-autodist-create-src-packages"/>
+  </target>
+
+  <target name="serializer-autodist-mkdirs">
+    <echo message="Serializer: making distribution directories" />
+    <mkdir dir="${serializer.dist.dir}"/> 
+    <mkdir dir="${serializer.dist.dir}/src"/>
+    <mkdir dir="${serializer.dist.dir}/tools"/>      
+  </target>
+
+  <target name="serializer-autodist-copy-files">
+    <!-- Copy bin directory, which includes preexisting checked-in .jar files -->
+<!--    <copy todir="${serializer.dist.dir}/bin">
+      <fileset dir="${serializer.bin.dir}" />
+    </copy> -->
+
+    <echo message="Serializer: copy source files to ${serializer.dist.dir}/src" />
+    <echo message="            ... from ${serializer.src.dir}/${serializer.reldir}" />
+    <!-- Copy sources -->
+    <copy todir="${serializer.dist.dir}/src/${serializer.reldir}">
+      <fileset dir="${serializer.src.dir}/${serializer.reldir}"/>
+    </copy>
+    <!-- Copy the manifest -->
+    <copy file="${serializer.src.dir}/${serializer.manifest.basename}"
+          todir="${serializer.dist.dir}/src" />
+
+    <!-- Copy built jars -->
+    <copy file="${build.serializer.jar}" todir="${serializer.dist.dir}" />
+    
+    <!-- Copy runtime jars -->    
+    <copy file="${lib.dir}/${xmlapis.jar.name}" todir="${serializer.dist.dir}" />
+    <copy file="${lib.dir}/${parser.jar.name}" todir="${serializer.dist.dir}" />
+
+    <!-- Copy licenses -->
+    <copy todir="${serializer.dist.dir}">
+      <fileset dir="." 
+               includes="LICENSE.txt,NOTICE.txt"/>
+    </copy>
+
+    <!-- Copy tools -->
+    <copy todir="${serializer.dist.dir}/tools">
+      <fileset dir="./tools" includes="ant*"/>
+    </copy>    
+
+    <copy todir="${serializer.dist.dir}">
+      <fileset dir="." includes="KEYS,build.xml,build.sh,build.bat"/>
+    </copy>
+  </target>
+
+  <target name="serializer-autodist-create-bin-packages">
+    <tar tarfile="${serializer.build.dir}/${serializer.dist.file}-bin.tar" >
+      <tarfileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-bin-distro"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${serializer.build.dir}/${serializer.dist.file}-bin.tar" 
+      zipfile="${serializer.build.dir}/${serializer.dist.file}-bin.tar.gz"/>
+
+    <!--  
+    <delete file="${serializer.build.dir}/${serializer.dist.file}-bin.tar" />
+      -->
+
+    <zip zipfile="${serializer.build.dir}/${serializer.dist.file}-bin.zip" >
+      <fileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-bin-distro"/>
+      </fileset>
+    </zip>
+  </target>
+
+  <target name="serializer-autodist-create-src-packages">
+    <tar tarfile="${serializer.build.dir}/${serializer.dist.file}-src.tar" >
+      <tarfileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-src-distro"/>
+      </tarfileset>
+    </tar>
+    <gzip src="${serializer.build.dir}/${serializer.dist.file}-src.tar" zipfile="${serializer.build.dir}/${serializer.dist.file}-src.tar.gz"/>
+
+    <delete file="${serializer.build.dir}/${serializer.dist.file}-src.tar" />
+
+    <zip zipfile="${serializer.build.dir}/${serializer.dist.file}-src.zip" >
+      <fileset dir="${serializer.build.dir}">
+        <patternset refid="serializer-src-distro"/>
+      </fileset>
+    </zip>
+  </target>
+<!-- ##################################################
+     # END OF SECTION TO BUILD STAND-ALONE SERIALIZER #
+     ################################################## -->
+
+</project>
diff --git a/build_srcdist_xalan_tests.xml b/build_srcdist_xalan_tests.xml
new file mode 100644
index 00000000..2416aeb7
--- /dev/null
+++ b/build_srcdist_xalan_tests.xml
@@ -0,0 +1,1783 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<project name="testxsl" default="jar" basedir=".">
+<description>
+build.xml:$Revision$
+Ant 1.4.1+ build script for compiling and running Xalan-J tests.  
+
+Note that this is a slightly unusual Ant build.xml file, since we 
+support both compiling/packaging the Xalan-J tests themselves, as 
+well as a number of targets designed to execute the tests once 
+they're built.
+
+In general the compilation targets (i.e. ones that compile the 
+test classes themselves) do list their dependencies explicitly.
+Targets that serve to execute tests do not normally list any 
+dependencies - users must manually 'build jar' first.
+
+@author shane_curcuru@lotus.com
+@see build.bat
+	
+This file has been written, to enable running XalanJ tests from 
+XalanJ source distribution. This file is largely, a copy of the 
+file build.xml provided by XalanJ xalan-test git repos.
+
+</description>
+
+<!-- Note: A number of property names may seem a little odd.  I've 
+     explicitly tried to reduce property name collisions between 
+     this file and xml-xalan/java/build.xml to try to simplify 
+     maintenance (or at least to separate the dev stuff from the 
+     testing stuff).  Suggestions for improvements (along with 
+     maintenance strategies) accepted. 
+-->
+
+    <!-- ================================================================== -->
+    <!-- Initialize: define various properties about locations, jars, etc.  -->
+    <!-- ================================================================== -->
+    <!-- First, read in the user's own default properties, if they exist -->
+    <property name="local.properties" value="my.test.properties"/>
+    <property file="${local.properties}" />
+    <!-- Then, read in the default checked-in properties -->
+    <property file="test.properties" />
+
+    <property name="smoketest.conf.excludes" value="${smoketest.conf.normal.excludes};${smoketest.conf.supplemental.excludes}"/>
+    <property name="smoketest.xsltc.conf.excludes" value="${smoketest.xsltc.conf.normal.excludes};${smoketest.xsltc.conf.supplemental.excludes}"/>
+    <!-- Also provide environment properties with a special prefix which 
+         allows us to detect if JARDIR is set.
+   -->
+    <property environment="ENV" />
+
+    <property name="year" value="2000-2023"/>
+    <!-- Properties related to compiling the tests -->
+    <property name="build.compiler" value="classic"/>
+    <property name="compiler" value="${build.compiler}"/>
+    <property name="debug" value="on"/>
+	<property name="compiler.nowarn" value="on"/>
+
+    <!-- Specific locations related to building test code/docs -->
+    <property name="test.src.dir" value="java/src"/>
+    <property name="test.root" value="org/apache/qetest/"/>
+    <property name="test.dir" value="${test.src.dir}/${test.root}"/>
+    <property name="test.tools.dir" value="./tools"/>    
+    <property name="test.build.dir" value="java/build"/>
+    <property name="test.build.docs" value="${test.build.dir}/docs"/>
+    <property name="test.build.apidocs" value="${test.build.docs}/apidocs"/>
+    <property name="tests.bugzilla.dir" value="tests/bugzilla"/>
+    <property name="tests.bugzilla.build.dir" value="tests/bugzilla/build"/>
+	<property name="extensions.dir" value="tests/extensions"/>
+	<property name="tests.extensions.dir" value="${extensions.dir}/java"/>
+	<property name="tests.extensions.build.dir" value="${extensions.dir}/java/build"/>
+    
+    <!-- Names/locations of .jar files we build -->
+    <property name="testxsl.jar.name" value="testxsl.jar"/>
+    <property name="qetest.jar.name" value="qetest.jar"/>
+    <property name="testxsl.jar" value="${test.build.dir}/${testxsl.jar.name}"/>
+    <property name="qetest.jar" value="${test.build.dir}/${qetest.jar.name}"/>
+	
+    <!-- Specific locations related to Xalan code, which should be in a sister tree to us -->
+    <property name="xalan.relpath" value="./.."/>
+    <property name="xalan.lib.dir" value="${xalan.relpath}/lib"/>  
+    <property name="xalan.tools.dir" value="${xalan.relpath}/tools"/>       
+    <property name="xalan.build.dir" value="${xalan.relpath}/build"/> 
+    <property name="xalan.xdocs.dir" value="${xalan.relpath}/xdocs"/>
+    <property name="xalan.generator.styletargz" value="${xalan.xdocs.dir}/xml-site-style.tar.gz"/>
+
+    <!-- Various names/locations of dependent jars -->
+    <property name="xalan.jar" value="${xalan.build.dir}/xalan.jar"/>
+    <property name="xalan.unbundled.jar" 
+              value="${xalan.build.dir}/xalan-unbundled.jar"/>
+    <property name="xsltc.jar" value="${xalan.build.dir}/xsltc.jar"/>
+    <property name="ser.jar" value="${xalan.build.dir}/serializer.jar"/>
+    <property name="xml-apis.jar" value="${xalan.lib.dir}/xml-apis.jar"/>
+    <property name="parserjar" value="${xalan.lib.dir}/xercesImpl.jar"/>
+
+    <!-- JTidy is used by the XSLTC comparator -->
+	<!--<property name="jtidy.jar" value="${test.tools.dir}/Tidy.jar"/>-->
+	<property name="jtidy.jar" value="${test.tools.dir}/jtidy-1.0.3.jar"/>
+    
+    <!-- The Mozilla Rhino jar is needed, to run Javascript extensions tests -->
+    <property name="js.jar" value="${xalan.relpath}/lib/rhino-1.7.14.jar"/>
+    
+    <!-- The Bean Scripting Framework is required for extensions written in languages 
+         other than Java. Xalan Java will attempt to use the Jakarta BSF implementation
+         by default (see the "extensions" target). For more information, see the 
+         Apache Commons BSF project https://commons.apache.org/proper/commons-bsf/.
+    -->    
+    <property name="bsf.jar" value="${xalan.relpath}/lib/bsf.jar"/>
+	
+    <property name="commons-logging.jar" value="${xalan.relpath}/lib/commons-logging-1.2.jar"/>
+
+    <!-- Documentation-specific files and locations -->
+    <property name="stylebook.jar" value="${xalan.tools.dir}/stylebook-1.0-b3_xalan-2.jar"/>
+    <property name="doclet.jar" value="${xalan.tools.dir}/xalan2jdoc.jar"/>
+    <property name="test.xdocs.dir" value="java/xdocs"/>
+    <property name="test.generator.styletar" value="${test.xdocs.dir}/xml-site-style.tar"/>
+    <property name="test.xdocs.book" value="${test.xdocs.dir}/sources/xalantest.xml"/>
+    <property name="test.xdocs.style" value="${test.xdocs.dir}/style"/>
+    <property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
+    <path id="test.docs.class.path">
+        <pathelement location="${stylebook.jar}" />
+        <pathelement location="${doclet.jar}" />
+        <pathelement location="${jtidy.jar}" />
+        <pathelement location="${xalan.jar}" />
+        <pathelement location="${ser.jar}" />
+        <pathelement location="${xml-apis.jar}" />
+        <pathelement location="${parserjar}" />
+    </path>
+
+    <!-- Note: given that many of the tests interact with xerces and 
+         xalan classes, and that Ant may use these classes (especially parser 
+         ones) I've found it's best to fork the tests.
+         Later I'd like to give the user the option to fork or not, since 
+         while forking is slower and problematic on some systems, it is 
+         also a safer testing environment (since the Ant classes and the 
+         parser aren't already loaded, etc.)
+    --> 
+    <property name="fork-tests" value="yes"/>
+    <!-- Property to have the Ant build fail when a test has an 
+         error (not necessarily a fail).  Needs improvement.
+    --> 
+    <property name="fail-on-error" value="yes"/>
+
+    <!-- ================================================================== -->
+    <!-- Initialize: define classpaths for use within specific targets      -->
+    <!-- ================================================================== -->
+    <!-- Classpath used when compiling tests -->
+    <path id="compiletest.class.path">
+        <pathelement location="${xalan.jar}" />
+        <pathelement location="${xsltc.jar}" />  <!-- add this so we can test the
+                                                      separate jar distribution -->
+        <pathelement location="${ser.jar}" />
+        <pathelement location="${xml-apis.jar}" />
+        <pathelement location="${parserjar}" />
+        <pathelement location="${jtidy.jar}" />
+    </path>
+
+    <!-- Classpath used when running API tests -->
+	<path id="api.class.path">
+	   <pathelement location="${xalan.jar}" />
+	   <pathelement location="${ser.jar}" />
+	   <pathelement location="${xml-apis.jar}" />
+	   <pathelement location="${parserjar}" />
+	   <pathelement location="${testxsl.jar}" />
+	   <pathelement location="${jtidy.jar}" />
+	</path>
+	
+	<path id="testxsl.class.path">
+	   <pathelement location="${testxsl.jar}" />
+	</path>
+
+    <!-- Classpath used when running conf or conformance tests -->
+    <path id="conf.class.path">
+        <pathelement location="${xalan.jar}" />
+        <pathelement location="${ser.jar}" />
+        <pathelement location="${xml-apis.jar}" />
+        <pathelement location="${parserjar}" />
+        <pathelement location="${testxsl.jar}" />
+        <pathelement location="${jtidy.jar}" />
+    </path>
+
+	<!-- Boot class path for JDK 1.4+ -->
+	<path id="boot.class.path">                                  
+	   <pathelement location="${xml-apis.jar}" />
+	   <pathelement location="${parserjar}" />
+	   <pathelement location="${ser.jar}" />
+	   <pathelement location="${xalan.jar}" />
+	   <!--<pathelement location="${xsltc.jar}" />-->  <!-- add this so we can test the
+	                                                              separate jar distribution -->        
+	   <pathelement path="${sun.boot.class.path}" />
+	</path>
+
+    <!-- Gump build xml-xalan2-smoketest should use xalan.unbundled.jar -->
+    <path id="boot.class.path.gump">
+        <pathelement location="${sun.boot.class.path}" />
+    </path>
+    
+    <!-- Classpath used when running perf or performance tests -->
+    <path id="perf.class.path">
+        <path refid="conf.class.path" />
+    </path>
+
+    <!-- Classpath used when running EXSLT tests -->
+    <path id="exslt.class.path">
+        <path refid="conf.class.path" />
+    </path>
+
+    <!-- Classpath used when running contrib or user-contributed tests -->
+    <path id="contrib.class.path">
+        <path refid="conf.class.path" />
+    </path>
+
+    <!-- Classpath used when running Bugzilla tests -->
+    <path id="bugzilla.class.path">
+        <path refid="api.class.path" />
+        <pathelement location="${tests.bugzilla.build.dir}" />
+    </path>
+
+	<!-- Classpath used when running extensions tests -->
+	<path id="extensions.class.path">
+	   <pathelement location="${xalan.jar}" />         
+	   <path refid="testxsl.class.path" />
+	   <pathelement location="${commons-logging.jar}" />
+	   <pathelement location="${bsf.jar}" />        
+	   <pathelement location="${js.jar}" />
+	   <pathelement location="${jtidy.jar}" />
+	   <pathelement location="${tests.extensions.build.dir}" />
+	   <pathelement location="${tests.bugzilla.build.dir}" />        
+	   <!-- Add more pathelements if we add more Java extensions dirs -->        
+	</path>
+
+    <!-- Classpath used when build/running xslt20 XPath 2.0 RWAPI tests -->
+    <path id="rwapitest.class.path">
+        <path refid="api.class.path" />
+        <pathelement location="${xalan.build.dir}/xpathapi.jar" />
+    </path>
+
+    <!-- ================================================================== -->
+    <!-- Initialize: Define an Ant task that executes Xalan test automation -->
+    <!-- ================================================================== -->
+    <taskdef name="xalantest" classname="org.apache.qetest.xsl.XSLTestAntTask">
+        <classpath>
+            <!-- Needed so this build file can run: this refers to 
+                 a precompiled version of XSLTestAntTask.class that 
+                 is checked in: normally at runtime, it should come 
+                 from the testxsl.jar file instead of below.
+           -->
+            <pathelement location="${test.src.dir}" />
+            <pathelement location="${test.build.dir}" />
+            <pathelement location="${testxsl.jar}" />
+        </classpath>
+    </taskdef>
+	
+	<!-- This Ant task checks, the 'api' tests pass or fail status, by inspecting 
+	     content within test result XML documents -->
+	<taskdef name="apiTestsResultTask" classname="org.apache.qetest.xsl.XSLApiTestsResultTask">
+	   <classpath>
+	     <pathelement location="${test.src.dir}" />
+	     <pathelement location="${test.build.dir}" />
+	     <pathelement location="${testxsl.jar}" />
+	   </classpath>
+	</taskdef>
+	
+	<!-- This Ant task, runs XalanJ xsltc tests -->
+	<taskdef name="xsltcTestsTask" classname="org.apache.qetest.xsl.XsltcTestsTask">
+	   <classpath>
+	      <pathelement location="${test.src.dir}" />
+	      <pathelement location="${test.build.dir}" />
+	      <pathelement location="${testxsl.jar}" />
+	   </classpath>
+	</taskdef>
+
+    <!-- ================================================================== -->
+    <!-- Base target for running tests with specified properties.  Actual   -->
+    <!-- work is handled by dependent tasks, at most one of which should be -->
+    <!-- executed.                                                          -->
+    <!-- ================================================================== -->
+    <target name="run.xalantest" depends="run.xalantest.default,run.xalantest.transfact"/>
+
+    <target name="run.xalantest.default" unless="sysprop.transfact" >       
+        <antcall target="run.xalantest.default.gump"/>
+        <antcall target="run.xalantest.default.normal"/>
+    </target>
+ 
+    <target name="run.xalantest.default.gump" if="gump" >
+        <xalantest test="${testClass}"
+            testType="${testType}"
+            classpathref="${xalantest.classpathref}"
+            bootclasspathref="boot.class.path.gump"
+            fork="${fork-tests}"
+            failonerror="${fail-on-error}" />
+    </target>
+
+    <target name="run.xalantest.default.normal" unless="gump" >
+        <xalantest test="${testClass}"
+            testType="${testType}"
+            classpathref="${xalantest.classpathref}"
+            bootclasspathref="boot.class.path"
+            fork="${fork-tests}"
+            failonerror="${fail-on-error}" />    
+    </target>
+
+    <target name="run.xalantest.transfact" if="sysprop.transfact" >
+        <antcall target="run.xalantest.transfact.gump"/>
+        <antcall target="run.xalantest.transfact.normal"/>
+    </target>
+
+    <target name="run.xalantest.transfact.gump" if="gump">
+        <xalantest test="${testClass}"
+            testType="${testType}"
+            classpathref="${xalantest.classpathref}"
+            bootclasspathref="boot.class.path.gump"
+            fork="${fork-tests}"
+            failonerror="${fail-on-error}" >
+            <!-- Explicitly set TransformerFactory property to use -->
+            <sysproperty key="javax.xml.transform.TransformerFactory"
+                         value="${sysprop.transfact}" />
+        </xalantest>
+    </target>
+
+    <target name="run.xalantest.transfact.normal" unless="gump">
+        <xalantest test="${testClass}"
+            testType="${testType}"
+            classpathref="${xalantest.classpathref}"
+            bootclasspathref="boot.class.path"
+            fork="${fork-tests}"
+            failonerror="${fail-on-error}" >
+            <!-- Explicitly set TransformerFactory property to use -->
+            <sysproperty key="javax.xml.transform.TransformerFactory"
+                         value="${sysprop.transfact}" />
+        </xalantest>    
+    </target>
+    
+    <target name="run.xalan-extension-test" >
+        <!-- <antcall target="run.xalan-extension-test.gump"/> -->
+        <antcall target="run.xalan-extension-test.normal"/>
+    </target>
+
+    <target name="run.xalan-extension-test.gump" if="gump">
+        <xalantest test="${testClass}"
+            testType="${testType}"
+            classpathref="${xalantest.classpathref}"
+            bootclasspathref="boot.class.path.gump"
+            fork="${fork-tests}"
+            failonerror="${fail-on-error}" >
+            <sysproperty key="org.apache.xalan.extensions.bsf.BSFManager"
+                         value="${sysprop.BSFManager}" />
+        </xalantest>
+    </target>
+
+    <target name="run.xalan-extension-test.normal">
+        <xalantest test="${testClass}"
+            testType="${testType}"
+            classpathref="${xalantest.classpathref}"
+            bootclasspathref="boot.class.path"
+            fork="${fork-tests}"
+            failonerror="${fail-on-error}" >
+            <sysproperty key="org.apache.xalan.extensions.bsf.BSFManager"
+                         value="${sysprop.BSFManager}" />
+        </xalantest>    
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Initialize: setup for compiling, doc building, running tests       -->
+    <!-- ================================================================== -->
+    <target name="init.test"
+        description="Prepare timestamp, echo version for debugging">
+    	<echo message="Using parserjar ${parserjar}" />
+        <tstamp />
+    </target>
+
+    <target name="init.build" depends="init.test"
+        description="Prepare build output tree, copy prebuilts">
+        <!-- Note this is case-sensitive, even on Windows! -->
+        <!-- Note JARDIR support should probably be removed, since it's a maintenance hassle Jul-02 -sc -->
+        <echo message="Your ==JARDIR== is set to ==${ENV.JARDIR}==" />
+        <echo message="JVM Classpath is ${java.class.path}" />
+        <mkdir dir="${test.build.dir}" />
+        <mkdir dir="${test.build.dir}/${test.root}" />
+        <!-- Also copy over precompiled external processor wrapper classes -->
+        <copy todir="${test.build.dir}/${test.root}/xslwrapper" >
+            <fileset dir="${test.dir}xslwrapper">
+                <include name="**/*.class" />
+                <include name="**/*.properties" />
+            </fileset>
+        </copy>
+        <!-- Also copy over precompiled Ant class (why do we suddenly need this? -sc) -->
+        <copy todir="${test.build.dir}/${test.root}/xsl" >
+            <fileset dir="${test.dir}xsl">
+                <include name="**/*.class" />
+            </fileset>
+        </copy>
+    </target>
+         
+    <target name="init.docs" depends="init.build"
+        description="Prepare output tree for documentation">
+        <mkdir dir="${test.build.apidocs}" />
+        <!-- Copy the Xalan-specific version of doc files and untargz them -->
+        <gunzip src="${xalan.generator.styletargz}" dest="${test.generator.styletar}"/>
+        <untar src="${test.generator.styletar}" dest="${test.xdocs.dir}"/>
+        <delete file="${test.generator.styletar}"/>
+    </target>
+
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the normal StylesheetTestletDriver on the conf suite    -->
+    <!-- ================================================================== -->
+	<target name="conf" description="Run TestletDriver over the conf tree"
+	                    depends="init.test">
+	    <!-- Set the default conformance test driver, user may override -->
+	    <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+	    <echo message="Executing Xalan conf test: ${testClass}" />
+	    <property name="testType" value="conf." />
+
+	    <mkdir dir="results-conf"/>
+
+	    <antcall target="run.xalantest">
+	            <param name="xalantest.classpathref" value="conf.class.path" />
+	    </antcall>
+
+	    <!--<property name="scan.outputDir" value="${conf.outputDir}"/>-->
+	    <property name="scan.outputDir" value="results-conf"/>
+	    <antcall target="scan"/>
+	</target>
+
+    <target name="conf.dom" description="Run TestletDriver over conf with DOM excludes">
+        <antcall target="conf">
+            <param name="conf.excludes" value="${trax.dom.excludes}"/>
+            <param name="conf.flavor" value="trax.dom"/>
+        </antcall>
+    </target>
+
+    <target name="conf.one" description="Run a single conf test">
+        <antcall target="conf">
+            <param name="testClass" value="org.apache.qetest.xsl.StylesheetDriver" />
+        </antcall>
+    </target>
+
+    <target name="conf.xsltc.dom" description="Run TestletDriver over conf with DOM excludes">
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.excludes" value="${trax.dom.excludes}"/>
+            <param name="conf.xsltc.flavor" value="trax.dom"/>
+        </antcall>
+    </target>
+
+    <target name="conf.trace" description="Run TestletDriver over the conf tree">
+        <property name="conf.trace" value="on"/>
+        <antcall target="conf"/>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the normal StylesheetTestletDriver on the EXSLT suite    -->
+    <!-- ================================================================== -->
+    <target name="exslt" description="Run TestletDriver over the exslt tree"
+        depends="init.test">
+        <!-- Set the default conformance test driver, user may override -->
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan exslt test: ${testClass}" />
+        <property name="testType" value="exslt." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="exslt.class.path" />
+        </antcall>
+        <property name="scan.outputDir" value="${exslt.outputDir}"/>
+        <antcall target="scan"/>
+    </target>
+
+    <target name="exslt.dom" description="Run TestletDriver over exslt with DOM excludes">
+        <antcall target="exslt">
+            <param name="exslt.excludes" value="${trax.dom.excludes}"/>
+            <param name="exslt.flavor" value="trax.dom"/>
+        </antcall>
+    </target>
+
+    <target name="exslt.one" description="Run a single exslt test">
+        <antcall target="exslt">
+            <param name="testClass" value="org.apache.qetest.xsl.StylesheetDriver" />
+        </antcall>
+    </target>
+
+    <target name="exslt.xsltc.dom" description="Run TestletDriver over exslt with DOM excludes">
+        <antcall target="exslt.xsltc">
+            <param name="exslt.xsltc.excludes" value="${trax.dom.excludes}"/>
+            <param name="exslt.xsltc.flavor" value="trax.dom"/>
+        </antcall>
+    </target>
+
+    <target name="exslt.trace" description="Run TestletDriver over the conf tree">
+        <property name="exslt.trace" value="on"/>
+        <antcall target="exslt"/>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the normal StylesheetTestletDriver on the accept suite  -->
+    <!-- ================================================================== -->
+	<target name="accept" description="Run TestletDriver over the accept tree">
+	    <!--<echo message="Executing Xalan accept test." />-->
+	        
+	    <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+	    <echo message="Executing Xalan conf test: ${testClass}" />
+
+	    <property name="qetest.summaryFile" value="Accept.xml" />
+	    <property name="testType" value="accept." />
+
+	    <mkdir dir="results-accept"/>
+
+	    <!--<antcall target="conf"/>-->
+	    <antcall target="run.xalantest">
+	       <param name="xalantest.classpathref" value="conf.class.path" />
+	    </antcall>
+
+	    <property name="scan.outputDir" value="results-accept"/>
+	    <antcall target="scan"/>
+	</target>
+
+    <!--<target name="accept.xsltc" description="Run TestletDriver over the accept tree">
+        <property name="testType" value="accept.xsltc." />
+        <property name="qetest.summaryFile" value="Accept.xml" />
+        <property name="scan.outputDir" value="${accept.xsltc.outputDir}"/>
+	    <property name="use-processor" value="${accept.xsltc.processor}"/>
+        <antcall target="conf.xsltc" />
+    </target>-->
+
+    <target name="accept.trace" description="Run TestletDriver over the accept tree">
+        <property name="accept.trace" value="on"/>
+        <antcall target="accept"/>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the StylesheetErrorTestlet on the conferr suite         -->
+    <!-- ================================================================== -->
+    <target name="conferr" description="Run TestletDriver over the conferr negative test tree"
+        depends="init.test">
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan conf test: ${testClass}" />
+        <property name="testType" value="conferr." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="conf.class.path" />
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${conferr.outputDir}"/>
+        </antcall>
+    </target>
+
+
+    <target name="conferr.xsltc" description="Run TestletDriver over the conferr negative test tree" depends="init.test">
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan conferr test-xsltc: ${testClass}" />
+        <property name="testType" value="conferr.xsltc." />
+
+        <!-- Set indent-number to 0 to match Xalan's default indentation -->
+        <property name="${testType}Processor.setAttribute.indent-number" value="0" />
+
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="conf.class.path" />
+            <!-- Explicitly set TransformerFactory property to use xsltc -->
+            <param name="sysprop.transfact"
+                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${conferr.xsltc.outputDir}" />
+        </antcall>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the normal StylesheetTestletDriver on the perf suite    -->
+    <!-- ================================================================== -->
+    <target name="perf" description="Run TestletDriver over the perf tree"
+        depends="init.test">
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan perf test: ${testClass}" />
+        <property name="testType" value="perf." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="perf.class.path" />
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${perf.outputDir}"/>
+        </antcall>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the normal StylesheetTestletDriver on the contrib suite -->
+    <!-- ================================================================== -->
+    <target name="contrib" description="Run TestletDriver over the contrib tree"
+        depends="init.test">
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan contrib test: ${testClass}" />
+        <property name="testType" value="contrib." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="contrib.class.path" />
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${contrib.outputDir}"/>
+        </antcall>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: the ThreadedTestletDriver on threads.filelist           -->
+    <!-- ================================================================== -->
+    <target name="threads" description="Run ThreadedTestletDriver on threads.filelist"
+        depends="init.test">
+        <!-- Set special threaded test driver and filelist, user may override -->
+        <property name="testClass" value="org.apache.qetest.xsl.ThreadedTestletDriver" />
+        <echo message="Executing Xalan threads test: ${testClass}" />
+        <property name="testType" value="threads." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="api.class.path" />
+        </antcall>
+    </target>
+
+
+	<!-- Run specific named API tests.
+	    
+	     What tests this build target runs, are defined within test.properties file
+	     (please see the section, 'Various tests, that run for ant build.xml's "apitest" 
+	      target' within ./test.properties file).
+	-->
+	<target name="apitest" description="Run specific API tests" depends="init.test">
+	    <property name="testClass" value="org.apache.qetest.xsl.XSLTestHarness" />
+	    <property name="testType" value="api." />
+	        
+	    <mkdir dir="results-api"/>
+	        
+	    <antcall target="run.xalantest">
+	       <param name="xalantest.classpathref" value="api.class.path" />
+	    </antcall>
+
+		<condition property="apitest-file-check-passed">
+		    <and>
+		       <available file="results-api/Pass-DOMResultAPITest.xml" />
+		       <available file="results-api/Pass-DOMSourceAPITest.xml" />
+		       <available file="results-api/Pass-DTMDumpTest.xml" />
+		       <available file="results-api/Pass-EmbeddedStylesheetTest.xml" />
+		       <available file="results-api/Pass-ErrorListenerAPITest.xml" />
+		       <available file="results-api/Pass-ErrorListenerTest.xml" />               
+		       <available file="results-api/Pass-SAXResultAPITest.xml" />
+		       <available file="results-api/Pass-SAXSourceAPITest.xml" />
+		       <available file="results-api/Pass-SAXTransformerFactoryAPITest.xml" />
+		       <available file="results-api/Pass-SerializedStylesheetTest.xml" />                              
+		       <available file="results-api/Pass-SystemIDResolverAPITest.xml" />               
+		       <available file="results-api/Pass-TemplatesHandlerAPITest.xml" />
+		       <available file="results-api/Pass-TestDTM.xml" />
+		       <available file="results-api/Pass-TestDTMIter.xml" />
+		       <available file="results-api/Pass-TestDTMTrav.xml" />
+		       <available file="results-api/Pass-TestXPathAPI.xml" />
+		       <available file="results-api/Pass-TraceListenerTest.xml" />               
+		       <available file="results-api/Pass-TransformerFactoryAPITest.xml" />
+		       <available file="results-api/Pass-TransformerHandlerAPITest.xml" />
+		       <available file="results-api/Pass-TransformerHandlerTest.xml" />
+		       <available file="results-api/Pass-TransformStateAPITest.xml" />               
+		       <available file="results-api/Pass-URIResolverTest.xml" />
+		    </and>
+		</condition>
+
+	    <antcall target="scan">
+	       <!--<param name="scan.outputDir" value="${api.outputDir}"/>-->
+	       <param name="scan.outputDir" value="results-api"/>
+	    </antcall>
+	        
+		<antcall target="apitest-pass-file-check"/>
+
+		<apiTestsResultTask resultDir="results-api" fileNamePrefix="Pass-"/>
+
+		<echo message=" [minitest] CONGRATULATIONS! The api tests passed!" />
+	</target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: Run all available API tests                             -->
+    <!-- ================================================================== -->
+    <target name="harness" description="Run all listed API harness.tests">
+        <antcall target="api">
+            <param name="testClass" value="org.apache.qetest.xsl.XSLTestHarness"/>
+            <param name="qetest.tests" value="${harness.tests}"/>
+            <!-- Below line is in case we run ThreadedTestletDriver -->
+            <param name="qetest.testlet" value="${harness.threads.testlet}"/>
+            <param name="qetest.fileList" value="${harness.threads.fileList}"/>
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${api.outputDir}"/>
+        </antcall>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: all Bugzilla testlets to regress bugs                   -->
+    <!-- ================================================================== -->
+    <target name="bugzilla" description="Run all Bugzilla Testlets and tests to regress bugs"
+        depends="init.test">
+        <echo message="Executing Xalan Bugzilla Testlets and tests to regress bugs" />
+        <property name="testClass" value="org.apache.qetest.xsl.BugzillaTestletDriver" />
+        <property name="testType" value="bugzilla." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="bugzilla.class.path" />
+        </antcall>
+        <echo message="If you got ClassNotFound, did you 'build bugzilla.classes' first?" />
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: various extensions tests                                -->
+    <!-- ================================================================== -->
+	<target name="extensions" 
+	        description="Run extensions tests. Non-Java extensions will use the Apache BSF implementation."
+	        depends="init.test">
+	    <echo message="Executing Xalan extensions tests. Non-Java extensions will use the Apache BSF implementation." />
+	    <!-- Set the default conformance test driver, user may 
+	         override; note test.properties:extensions.testlet= 
+	    -->
+	    <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+	    <property name="testType" value="extensions." />
+
+	    <mkdir dir="results-extensions"/>
+	        
+	    <antcall target="run.xalan-extension-test">
+	       <param name="xalantest.classpathref" value="extensions.class.path" />
+	       <param name="sysprop.BSFManager" value="org.apache.bsf.BSFManager" />
+	    </antcall>
+	    <property name="scan.outputDir" value="results-extensions"/>
+	    <antcall target="scan"/>
+	    <echo message="If you got ClassNotFound, did you 'build extensions.classes' first?" />
+	</target>
+
+    <target name="extensions-with-ibm-bsf" 
+            description="Run extensions tests. 
+                         Non-Java extensions will use the IBM BSF implementation."
+            depends="init.test">
+        <echo message="Executing Xalan extensions tests.  Non-Java extensions will use the IBM BSF implementation." />
+        <!-- Set the default conformance test driver, user may 
+             override; note test.properties:extensions.testlet= 
+        -->
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <property name="testType" value="extensions.with-ibm-bsf." />
+        <property name="scan.outputDir" value="${extensions.with-ibm-bsf.outputDir}"/>
+
+        <antcall target="run.xalan-extension-test">
+            <param name="extensions.outputDir" value="${extensions.with-ibm-bsf.outputDir}" />
+            <param name="xalantest.classpathref" value="extensions.class.path" />
+            <param name="sysprop.BSFManager" value="com.ibm.bsf.BSFManager" />
+        </antcall>
+        <antcall target="scan"/>
+        <echo message="If you got ClassNotFound, did you 'build extensions.classes' first?" />
+    </target>
+
+    <target name="rwapi" description="Run TestletDriver with xslt20 XPath2.0 RWAPI tests"
+        depends="init.test,compile.rwapi,jar">
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan conf test: ${testClass}" />
+        <property name="testType" value="conf." />
+        <property name="conf.testlet" value="org.apache.qetest.rwapi.XPathASTTestlet" />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref" value="rwapitest.class.path" />
+        </antcall>
+        <property name="scan.outputDir" value="${conf.outputDir}"/>
+        <antcall target="scan"/>
+    </target>
+    <!-- ================================================================== -->
+    <!-- Run tests: Run the Xalan-J 2.x Minitest                            -->
+    <!-- ================================================================== -->
+    <!-- This target doesn't actually do anything itself - it merely 
+         depends on other targets, in order, to first run the whole 
+         Minitest, then to log to Ant whether the test didn't pass 
+         (i.e. failed, incomplete, error or ambiguous) or passed.
+    -->
+    <target name="minitest" 
+            description="Run the Xalan-J 2.x Minitest"
+            depends="minitest-execute,minitest-notpass,minitest-pass">
+    </target>
+
+    <target name="minitest.gump" 
+            description="Compile and Run the Xalan-J 2.x Minitest"
+            depends="jar">
+       <antcall target="minitest">
+         <param name="gump" value="boot.class.path.gump"/>
+       </antcall>            
+    </target>
+    <target name="minitest-execute">
+        <echo message="About to execute the Minitest..." />
+        <antcall target="api">
+            <param name="testClass" value="org.apache.qetest.trax.Minitest"/>
+            <param name="testType" value="minitest."/>
+        </antcall>
+        <available file="${minitest.passFile}" property="minitest-passed" />
+    </target>
+    <target name="minitest-notpass" unless="minitest-passed">
+        <echo message=" [minitest] ERROR! The Minitest failed!" />
+        <echo message=" [minitest] See details in ${minitest.logFile}, output is in ${minitest.outputDir}" />
+        <echo message=" [minitest] Please fix any Minitest problems before checking in!" />
+        <fail message="Please fix any Minitest problems before checking in!" />
+    </target>
+    <target name="minitest-pass" if="minitest-passed">
+        <echo message=" [minitest] CONGRATULATIONS! The Minitest passed!" />
+        <echo message=" [minitest] See details in ${minitest.logFile}" />
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: Run the Xalan-J 2.x Smoketest, including several tests  -->
+    <!-- Note: this target is frequently called from outside of this file!  -->
+    <!-- ================================================================== -->
+    <!--<target name="smoketest" 
+            description="Run the Xalan-J 2.x Smoketest"
+            depends="minitest-execute,extensions.classes,smoketest-execute,minitest-notpass,minitest-pass,smoketest-notpass,smoketest-pass">
+    </target>-->
+	<target name="smoketest" 
+	        description="Run the Xalan-J 2.x Smoketest"
+	        depends="smoketest-execute,smoketest-notpass,smoketest-pass">
+	</target>
+    <target name="smoketest.xsltc" 
+            description="Run the Xalan-J 2.x XSLTC Smoketest"
+            depends="jar,smoketest.xsltc-execute,smoketest.xsltc-notpass,smoketest.xsltc-pass">
+    </target>
+	
+	<!-- The following compiles the minimum to run the smoketests, runs them, 
+	     and creates distros just of the results and existing tree, 
+	     without actually running the docs - this is to ensure that 
+	     doc build errors in the tests won't affect GUMP runs.
+	-->
+    <target name="smoketest.dev" 
+            description="Run the Xalan-J 2.x Smoketest with dependencies"
+            depends="jar,minitest-execute,extensions.classes,smoketest-execute,minitest-notpass,minitest-pass,smoketest-notpass,smoketest-pass">
+    </target>
+	
+    <target name="smoketest.gump" 
+            description="Run the Xalan-J 2.x Smoketest in automated builds with dependencies">
+       <antcall target="minitest.gump">
+         <param name="gump" value="boot.class.path.gump"/>
+       </antcall>    
+       <antcall target="extensions.classes"/>      
+       <antcall target="smoketest-execute.gump">
+         <param name="gump" value="boot.class.path.gump"/>
+       </antcall>  
+       
+        <!-- This compiles the minimum to run the smoketests, runs them, 
+             and creates distros just of the results and existing tree, 
+             without actually running the docs - this is to ensure that 
+             doc build errors in the tests won't affect GUMP runs.
+        -->
+    </target>
+    
+    <!-- This target smoketest-execute.gump is a subtarget which is called
+         from smoketest.gump. 
+    -->
+    <target name="smoketest-execute.gump" 
+            description="Run the Xalan-J 2.x Smoketest for Gump build "
+            depends="smoketest-execute,smoketest-results-dist,dist-nodeps,
+            smoketest-notpass,smoketest-pass">
+    </target>    
+
+	<target name="smoketest-execute">
+	    <echo message="About to execute XalanJ2 extensions tests..." />
+	    <antcall target="extensions">
+	       <param name="testType" value="smoketest.extensions."/>
+	    </antcall>
+
+	    <echo message="About to execute Conformance tests..." />
+	    <antcall target="conf">
+	       <param name="testType" value="smoketest.conf."/>
+	    </antcall>
+
+	    <echo message="About to execute Accept tests..." />
+	    <antcall target="accept">
+	            <param name="testType" value="smoketest.accept."/>
+	    </antcall>
+
+	    <condition property="smoketest-passed">
+	       <and>
+	          <available file="${smoketest.extensions.passFile}" />
+	          <available file="${smoketest.conf.passFile}" />
+	          <available file="${smoketest.accept.passFile}" />              
+	       </and>
+	    </condition>
+	    <antcall target="scan">
+	       <param name="scan.outputDir" value="smoketest"/>
+	    </antcall>
+	</target>
+
+    <target name="smoketest.xsltc-execute">
+        <echo message="About to execute Conformance tests..." />
+        <antcall target="conf.xsltc">
+            <param name="testType" value="smoketest.xsltc.conf."/>
+        </antcall>
+
+        <echo message="About to execute Accept tests..." />
+        <antcall target="accept.xsltc">
+            <param name="testType" value="smoketest.xsltc.accept."/>
+        </antcall>
+
+        <condition property="smoketest.xsltc-passed">
+            <and>
+                <available file="${smoketest.xsltc.conf.passFile}" />
+                <available file="${smoketest.xsltc.accept.passFile}" />
+            </and>
+        </condition>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="smoketest.xsltc"/>
+        </antcall>
+    </target>
+
+    <target name="smoketest-notpass" unless="smoketest-passed">
+        <echo message=" [minitest] ERROR! The Smoketest failed!" />
+        <echo message=" [minitest] See details in ${smoketest.conf.logFile}, output is in ${smoketest.conf.outputDir}" />
+        <echo message=" [minitest] See details in ${smoketest.api.logFile}, output is in ${smoketest.api.outputDir}" />
+        <echo message=" [minitest] See details in ${smoketest.extensions.logFile}, output is in ${smoketest.extensions.outputDir}" />
+        <echo message=" [minitest] Please fix any smoketest problems before checking in!" />
+        <fail message="Please fix any smoketest problems before checking in!" />
+    </target>
+	
+	<target name="smoketest-pass" if="smoketest-passed">
+	    <echo message=" [minitest] CONGRATULATIONS! The Smoketest passed!" />        
+	    <echo message=" [minitest] Details are in ${smoketest.extensions.logFile}, ${smoketest.conf.logFile}, ${smoketest.accept.logFile}" />
+	</target>
+	
+	<target name="apitest-pass-file-check" unless="apitest-file-check-passed">
+	   <echo message=" [minitest] ERROR! The api tests failed!" />
+	   <fail message="Please fix any api tests problems before checking in!" />       
+	</target>
+
+    <target name="smoketest.xsltc-notpass" unless="smoketest.xsltc-passed">
+        <echo message=" [minitest] ERROR! The Smoketest failed!" />
+        <echo message=" [minitest] See details in ${smoketest.xsltc.conf.logFile}, output is in ${smoketest.xsltc.conf.outputDir}" />
+        <echo message=" [minitest] See details in ${smoketest.xsltc.accept.logFile}, output is in ${smoketest.xsltc.accept.outputDir}" />
+        <echo message=" [minitest] Please fix any smoketest problems before checking in!" />
+        <fail message="Please fix any smoketest problems before checking in!" />
+    </target>
+    <target name="smoketest.xsltc-pass" if="smoketest.xsltc-passed">
+        <echo message=" [minitest] CONGRATULATIONS! The Smoketest passed!" />
+        <echo message=" [minitest] Details are in ${smoketest.xsltc.conf.logFile}, ${smoketest.xsltc.accept.logFile}" />
+    </target>
+
+    <target name="smoketest-results-dist" depends="init.test">
+        <property name="tarzip-backref" value="../.."/>
+        <property name="tarzip-fwdref" value="xml-xalan/test"/>
+        <!-- tar.gz the automation and batch files, etc. -->
+        <!-- # smoketest parent output location: used in test.properties/build.xml -->
+        <tar tarfile="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar">
+          <tarfileset dir="${tarzip-backref}">
+            <include name="${tarzip-fwdref}/${smoketest.outputDir}/"/>
+          </tarfileset>
+        </tar>
+        <gzip src="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar" 
+              zipfile="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar.gz"/>
+        <delete file="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar"/>
+              
+        <zip zipfile="${test.build.dir}/xalan-smoketest-${DSTAMP}.zip" >
+          <zipfileset dir="${tarzip-backref}">
+            <include name="${tarzip-fwdref}/${smoketest.outputDir}/"/>
+          </zipfileset>
+        </zip>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: A whole bunch of tests - used before posting builds, etc-->
+    <!-- ================================================================== -->
+    <target name="alltest" 
+            description="Run nearly *all* available Xalan-J 2.x tests with defaults"
+            depends="all,alltest.other,alltest.conf,alltest.accept,alltest.contrib">
+        <!-- Ensure that one last scan gets run of the whole output set
+             (Note that when we call sub-targets, some of our subdirs 
+             may have had sub-scans done as well) -->
+        <antcall target="scan">
+            <param name="scan.outputDir" value="results-alltest"/>
+        </antcall>
+
+    </target>
+    <target name="alltest.features" 
+            description="Re-Run nearly *all* available Xalan-J 2.x tests with setAttribute features set"
+            depends="all,alltest.other">
+        <property name="alltest.resultDir" value="results-alltest" />
+        <antcall target="alltest.conf">
+            <param name="alltest.resultDir" value="${alltest.resultDir}/inctrue"/>
+            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/incremental" value="true"/>
+        </antcall>
+        <antcall target="alltest.conf">
+            <param name="alltest.resultDir" value="${alltest.resultDir}/optfalse"/>
+            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/optimize" value="false"/>
+        </antcall>
+        <antcall target="alltest.contrib">
+            <param name="alltest.resultDir" value="${alltest.resultDir}/inctrue"/>
+            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/incremental" value="true"/>
+        </antcall>
+        <antcall target="alltest.contrib">
+            <param name="alltest.resultDir" value="${alltest.resultDir}/optfalse"/>
+            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/optimize" value="false"/>
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${alltest.resultDir}"/>
+        </antcall>
+    </target>
+
+    <target name="alltest.other">
+        <property name="alltest.resultDir" value="results-alltest" />
+        <echo message="About to execute various API, extensions, bugzilla tests, results under ${alltest.resultDir}/..." />
+        <!-- Run all individual API tests through the harness -->
+        <antcall target="harness">
+            <param name="api.outputDir" value="${alltest.resultDir}/harness"/>
+            <param name="api.logFile" value="${alltest.resultDir}/harness/results.xml"/>
+        </antcall>
+        <!-- Run other misc tests -->
+        <antcall target="extensions">
+            <param name="extensions.outputDir" value="${alltest.resultDir}/extensions"/>
+            <param name="extensions.logFile" value="${alltest.resultDir}/extensions/results.xml"/>
+        </antcall>
+        <antcall target="bugzilla">
+            <param name="bugzilla.outputDir" value="${alltest.resultDir}/bugzilla"/>
+            <param name="bugzilla.logFile" value="${alltest.resultDir}/bugzilla/results.xml"/>
+        </antcall>
+        <!-- Run the threading tests once -->
+        <antcall target="threads">
+            <param name="threads.outputDir" value="${alltest.resultDir}/threads"/>
+            <param name="threads.logFile" value="${alltest.resultDir}/threads/results.xml"/>
+        </antcall>
+        <!-- Run the perf tests just with streams, which gives best perf data -->
+        <antcall target="perf">
+            <param name="perf.flavor" value="trax.stream"/>
+			<param name="perf.fileList" value="perf.filelist"/>
+            <param name="perf.outputDir" value="${alltest.resultDir}/perf"/>
+            <param name="perf.logFile" value="${alltest.resultDir}/perf/results.xml"/>
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${alltest.resultDir}"/>
+        </antcall>
+    </target>
+
+    <target name="alltest.contrib">
+        <property name="alltest.resultDir" value="results-alltest" />
+        <property name="alltest.contrib.resultDir" value="${alltest.resultDir}/contrib" />
+        <echo message="About to execute contrib tests with all flavors, results into ${alltest.contrib.resultDir}/..." />
+
+        <antcall target="contrib">
+            <param name="contrib.flavor" value="trax.systemId"/>
+            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/systemId"/>
+            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/systemId/results.xml"/>
+        </antcall>
+        <antcall target="contrib">
+            <param name="contrib.flavor" value="trax.file"/>
+            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/file"/>
+            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/file/results.xml"/>
+        </antcall>
+        <antcall target="contrib">
+            <param name="contrib.flavor" value="trax.dom"/>
+            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/dom"/>
+            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/dom/results.xml"/>
+        </antcall>
+        <antcall target="contrib">
+            <param name="contrib.flavor" value="trax.sax"/>
+            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/sax"/>
+            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/sax/results.xml"/>
+        </antcall>
+        <antcall target="contrib">
+            <param name="contrib.flavor" value="trax.localPath"/>
+            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/localPath"/>
+            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/localPath/results.xml"/>
+        </antcall>
+        <antcall target="contrib">
+            <param name="contrib.flavor" value="trax.stream"/>
+            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/stream"/>
+            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/stream/results.xml"/>
+        </antcall>
+    </target>
+
+    <target name="alltest.conf">
+        <property name="alltest.resultDir" value="results-alltest" />
+        <property name="alltest.conf.resultDir" value="${alltest.resultDir}/conf" />
+        <echo message="About to execute conf tests with all flavors, results into ${alltest.conf.resultDir}/..." />
+        <!-- Run full conf test with each major available flavor into 
+             specific output directories; note any user options will 
+             override for all test calls.
+             Also exclude the currently failing tests in the 
+             smoketest if use.excludes is set.
+        -->
+        <condition property="conf.excludes" value="${smoketest.conf.excludes}">
+            <equals arg1="${use.excludes}" arg2="true" />
+        </condition>
+        <antcall target="conf">
+            <param name="conf.flavor" value="trax.systemId"/>
+            <param name="conf.excludes" value="${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/systemId"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/systemId/results.xml"/>
+        </antcall>
+        <antcall target="conf">
+            <param name="conf.flavor" value="trax.file"/>
+            <param name="conf.excludes" value="${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/file"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/file/results.xml"/>
+        </antcall>
+        <antcall target="conf">
+            <param name="conf.flavor" value="trax.dom"/>
+            <!-- Note DOM always has additional exclusions in conf tests-->
+            <param name="conf.excludes" value="${trax.dom.excludes};${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/dom"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/dom/results.xml"/>
+        </antcall>
+        <antcall target="conf">
+            <param name="conf.flavor" value="trax.sax"/>
+            <param name="conf.excludes" value="${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/sax"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/sax/results.xml"/>
+        </antcall>
+        <antcall target="conf">
+            <param name="conf.flavor" value="trax.localPath"/>
+            <param name="conf.excludes" value="${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/localPath"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/localPath/results.xml"/>
+        </antcall>
+        <antcall target="conf">
+            <param name="conf.flavor" value="trax.stream"/>
+            <param name="conf.excludes" value="${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/stream"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/stream/results.xml"/>
+        </antcall>
+        <!-- we should really run conferr with each flavor -->
+        <antcall target="conferr">
+            <param name="conferr.flavor" value="trax.systemId"/>
+            <param name="conferr.outputDir" value="${alltest.conf.resultDir}/conferr"/>
+            <param name="conferr.logFile" value="${alltest.conf.resultDir}/conferr/results.xml"/>
+            <!-- Note that conferr doesn't currently use gold files, 
+                 but we need to set the goldDir anyway for convenience
+            --> 
+            <param name="conferr.goldDir" value="${alltest.conf.resultDir}/conferr-gold"/>
+        </antcall>
+        <!-- To be updated: also use at least one run of ErrorHandlerTestlet -->
+        <antcall target="conf">
+            <param name="conf.testlet" value="org.apache.qetest.xsl.ErrorHandlerTestlet"/>
+            <param name="conf.flavor" value="trax.stream"/>
+            <param name="conf.excludes" value="${conf.excludes}"/>
+            <param name="conf.outputDir" value="${alltest.conf.resultDir}/streamEH"/>
+            <param name="conf.logFile" value="${alltest.conf.resultDir}/streamEH/results.xml"/>
+        </antcall>
+    </target>
+
+    <target name="alltest.accept">
+        <property name="alltest.resultDir" value="results-alltest" />
+        <property name="alltest.accept.resultDir" value="${alltest.resultDir}/accept" />
+        <echo message="About to execute accept tests with all flavors, results into ${alltest.accept.resultDir}/..." />
+        <!-- Run full accept test with each major available flavor into 
+             specific output directories; note any user options will 
+             override for all test calls.
+             Also exclude the currently failing tests in the 
+             smoketest if use.excludes is set.
+        -->
+        <condition property="accept.excludes" value="${smoketest.accept.excludes}">
+            <equals arg1="${use.excludes}" arg2="true" />
+        </condition>
+        <antcall target="accept">
+            <param name="accept.flavor" value="trax.systemId"/>
+            <param name="accept.excludes" value="${accept.excludes}"/>
+            <param name="accept.outputDir" value="${alltest.accept.resultDir}/systemId"/>
+            <param name="accept.logFile" value="${alltest.accept.resultDir}/systemId/results.xml"/>
+        </antcall>
+        <antcall target="accept">
+            <param name="accept.flavor" value="trax.file"/>
+            <param name="accept.excludes" value="${accept.excludes}"/>
+            <param name="accept.outputDir" value="${alltest.accept.resultDir}/file"/>
+            <param name="accept.logFile" value="${alltest.accept.resultDir}/file/results.xml"/>
+        </antcall>
+        <antcall target="accept">
+            <param name="accept.flavor" value="trax.dom"/>
+            <!-- Note DOM always has additional exclusions in accept tests-->
+            <param name="accept.excludes" value="${trax.dom.excludes};${accept.excludes}"/>
+            <param name="accept.outputDir" value="${alltest.accept.resultDir}/dom"/>
+            <param name="accept.logFile" value="${alltest.accept.resultDir}/dom/results.xml"/>
+        </antcall>
+        <antcall target="accept">
+            <param name="accept.flavor" value="trax.sax"/>
+            <param name="accept.excludes" value="${accept.excludes}"/>
+            <param name="accept.outputDir" value="${alltest.accept.resultDir}/sax"/>
+            <param name="accept.logFile" value="${alltest.accept.resultDir}/sax/results.xml"/>
+        </antcall>
+        <antcall target="accept">
+            <param name="accept.flavor" value="trax.localPath"/>
+            <param name="accept.excludes" value="${accept.excludes}"/>
+            <param name="accept.outputDir" value="${alltest.accept.resultDir}/localPath"/>
+            <param name="accept.logFile" value="${alltest.accept.resultDir}/localPath/results.xml"/>
+        </antcall>
+        <antcall target="accept">
+            <param name="accept.flavor" value="trax.stream"/>
+            <param name="accept.excludes" value="${accept.excludes}"/>
+            <param name="accept.outputDir" value="${alltest.accept.resultDir}/stream"/>
+            <param name="accept.logFile" value="${alltest.accept.resultDir}/stream/results.xml"/>
+        </antcall>
+        <!-- we should really run accept with each flavor -->
+    </target>
+
+    <target name="alltest.conf.xsltc">
+        <property name="alltest.xsltc.resultDir" value="results-alltest.xsltc" />
+        <property name="alltest.conf.xsltc.resultDir" value="${alltest.xsltc.resultDir}/conf" />
+        <echo message="About to execute xsltc.conf tests with all flavors, results into ${alltest.conf.xsltc.resultDir}/..." />
+        <!-- Run full conf test with each major available flavor into 
+             specific output directories; note any user options will 
+             override for all test calls.
+             Also exclude the currently failing tests in the 
+             smoketest if use.excludes is set.
+        -->
+        <condition property="conf.xsltc.excludes" value="${smoketest.conf.xsltc.excludes}">
+            <equals arg1="${use.excludes}" arg2="true" />
+        </condition>
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.flavor" value="trax.systemId"/>
+            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
+            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/systemId"/>
+            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/systemId/results.xml"/>
+        </antcall>
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.flavor" value="trax.file"/>
+            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
+            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/file"/>
+            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/file/results.xml"/>
+        </antcall>
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.flavor" value="trax.dom"/>
+            <!-- Note DOM always has additional exclusions in conf tests-->
+            <param name="conf.xsltc.excludes" value="${trax.dom.excludes};${conf.xsltc.excludes}"/>
+            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/dom"/>
+            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/dom/results.xml"/>
+        </antcall>
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.flavor" value="trax.sax"/>
+            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
+            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/sax"/>
+            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/sax/results.xml"/>
+        </antcall>
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.flavor" value="trax.localPath"/>
+            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
+            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/localPath"/>
+            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/localPath/results.xml"/>
+        </antcall>
+        <antcall target="conf.xsltc">
+            <param name="conf.xsltc.flavor" value="trax.stream"/>
+            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
+            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/stream"/>
+            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/stream/results.xml"/>
+        </antcall>
+    </target>
+
+    <target name="alltest.accept.xsltc">
+        <property name="alltest.xsltc.resultDir" value="results-alltest.xsltc" />
+        <property name="alltest.accept.xsltc.resultDir" value="${alltest.xsltc.resultDir}/accept" />
+        <echo message="About to execute xsltc.accept tests with all flavors, results into ${alltest.accept.xsltc.resultDir}/..." />
+        <!-- Run full accept test with each major available flavor into 
+             specific output directories; note any user options will 
+             override for all test calls.
+             Also exclude the currently failing tests in the 
+             smoketest if use.excludes is set.
+        -->
+        <condition property="accept.xsltc.excludes" value="${smoketest.accept.xsltc.excludes}">
+            <equals arg1="${use.excludes}" arg2="true" />
+        </condition>
+        <antcall target="accept.xsltc">
+            <param name="accept.xsltc.flavor" value="trax.systemId"/>
+            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
+            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/systemId"/>
+            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/systemId/results.xml"/>
+        </antcall>
+        <antcall target="accept.xsltc">
+            <param name="accept.xsltc.flavor" value="trax.file"/>
+            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
+            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/file"/>
+            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/file/results.xml"/>
+        </antcall>
+        <antcall target="accept.xsltc">
+            <param name="accept.xsltc.flavor" value="trax.dom"/>
+            <!-- Note DOM always has additional exclusions in accept tests-->
+            <param name="accept.xsltc.excludes" value="${trax.dom.excludes};${accept.xsltc.excludes}"/>
+            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/dom"/>
+            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/dom/results.xml"/>
+        </antcall>
+        <antcall target="accept.xsltc">
+            <param name="accept.xsltc.flavor" value="trax.sax"/>
+            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
+            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/sax"/>
+            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/sax/results.xml"/>
+        </antcall>
+        <antcall target="accept.xsltc">
+            <param name="accept.xsltc.flavor" value="trax.localPath"/>
+            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
+            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/localPath"/>
+            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/localPath/results.xml"/>
+        </antcall>
+        <antcall target="accept.xsltc">
+            <param name="accept.xsltc.flavor" value="trax.stream"/>
+            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
+            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/stream"/>
+            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/stream/results.xml"/>
+        </antcall>
+    </target>
+
+    <target name="alltest.conf.trace">
+        <property name="conf.trace" value="on"/>
+        <antcall target="alltest.conf"/>
+    </target>
+
+    <target name="alltest.accept.trace">
+        <property name="accept.trace" value="on"/>
+        <antcall target="alltest.accept"/>
+    </target>
+
+    <target name="test"
+        depends="alltest"
+        description="Alias for alltest">
+    </target>
+
+    <target name="check"
+        depends="alltest"
+        description="Alias for alltest">
+    </target>
+
+    <target name="scan"
+        description="Run a simple ResultScanner on a tree of test results">
+        <property name="scan.outputDir" value="results-alltest" />
+        <property name="scan.logFile" value="${scan.outputDir}/ResultReport" />
+        <java classname="org.apache.qetest.xsl.ResultScanner" 
+              classpathref="conf.class.path" 
+              fork="yes" >
+              <arg line="${scan.outputDir} ${scan.logFile}"/>
+        </java>	 
+    </target>
+    <!-- ================================================================== -->
+    <!-- Build Tests: Compile/jar targets for each 'layer' of testing code  -->
+    <!-- ================================================================== -->
+    <target name="compile.qetest" depends="init.build"
+        description="Compile base qetest files; no Xalan dependencies">
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}*.java" 
+               debug="${debug}" nowarn="${compiler.nowarn}"/>
+    </target>
+
+
+    <target name="jar.qetest" depends="compile.qetest"
+        description="Jar base qetest files; no Xalan dependencies">
+        <jar jarfile="${qetest.jar}" 
+             basedir="${test.build.dir}" 
+             includes="${test.root}*.java,${test.root}*.properties" />
+    </target>
+
+
+    <!-- This step should be dependent upon general XML/XSL 
+         functionality like SAX, DOM, JAXP and the like, but 
+         should not directly depend on Xalan 
+   -->
+    <target name="compile.xsl" depends="compile.qetest"
+        description="Compile TransformWrapper and associated classes">
+        <!-- This javac has no dependencies -->
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}xslwrapper/TransformWrapperHelper.java,${test.root}xslwrapper/TransformWrapper.java,${test.root}xslwrapper/TransformWrapperFactory.java"
+               debug="${debug}" nowarn="${compiler.nowarn}"/>
+        <!-- This javac depends on JAXP, SAX, DOM; hence the specific classpathref -->
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}xsl/*.java"
+               debug="${debug}" 
+               classpathref="compiletest.class.path" nowarn="${compiler.nowarn}"/>
+    </target>
+
+    <target name="compile.trax.xslwrappers" depends="compile.xsl"
+        description="Compile Trax*Wrapper xslwrappers only">
+        <!-- Should only be dependent on JAXP, not Xalan specifically -->
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}xslwrapper/Trax*Wrapper.java,${test.root}xslwrapper/TraxWrapperUtils.java,${test.root}xslwrapper/XalanProcessWrapper.java"
+               debug="${debug}"
+               classpathref="compiletest.class.path" nowarn="${compiler.nowarn}"/>
+    </target>
+
+    <target name="compile.trax" depends="compile.xsl,compile.trax.xslwrappers"
+        description="Compile various JAXP-based API tests">
+        <!-- Should only be dependent on JAXP, not Xalan specifically -->
+        <!-- Separate javac steps to avoid compiler oddities -->
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}trax/*.java"
+               debug="${debug}"
+               classpathref="compiletest.class.path" 
+        	   nowarn="${compiler.nowarn}"/>
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}trax/stream/*.java"
+               debug="${debug}"
+               classpathref="compiletest.class.path" 
+        	   nowarn="${compiler.nowarn}"/>
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}trax/dom/*.java"
+               debug="${debug}"
+               classpathref="compiletest.class.path" 
+    	       nowarn="${compiler.nowarn}"/>
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}trax/sax/*.java"
+               debug="${debug}"
+               classpathref="compiletest.class.path" 
+    	       nowarn="${compiler.nowarn}"/>
+    </target>
+
+    <target name="compile" depends="compile.trax">
+        <echo message="Compile Xalan-J 2.x specific tests" />
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}xalanj2/*.java,${test.root}dtm/*.java"
+               excludes="${test.root}dtm/xsltcDocCode.java"
+               debug="${debug}"
+               classpathref="compiletest.class.path" 
+        	   nowarn="${compiler.nowarn}"/>
+    </target>
+
+    <target name="compile.rwapi" depends="compile">
+        <echo message="Compile xslt20 / XPath2.0 RWAPI tests" />
+        <javac srcdir="${test.src.dir}" 
+               destdir="${test.build.dir}" 
+               includes="${test.root}rwapi/*.*"
+               debug="${debug}"
+               classpathref="rwapitest.class.path" 
+    	       nowarn="${compiler.nowarn}"/>
+    </target>
+
+    <!-- Note that this target must *not* depend on any XSLTC tests, 
+         which have to be compiled separately; otherwise the 
+         smoketest will fail.
+    -->
+    <target name="jar" depends="compile"
+        description="Build testxsl.jar with all available tests">
+        <jar jarfile="${testxsl.jar}" 
+             basedir="${test.build.dir}" 
+             includes="**/*.class,**/*.properties" />
+    </target>
+
+    <!-- excludes="Bugzilla1288.java"; test refers to removed classes -->
+    <target name="bugzilla.classes" depends="jar"
+        description="Compile any bugzilla testlet classes">
+        <mkdir dir="${tests.bugzilla.build.dir}" />
+        <javac srcdir="${tests.bugzilla.dir}" 
+               destdir="${tests.bugzilla.build.dir}" 
+               debug="${debug}"
+               excludes="Bugzilla1288.java"
+               classpathref="bugzilla.class.path" 
+        	   nowarn="${compiler.nowarn}"/>
+    </target>
+
+    <target name="extensions.classes" depends="jar"
+        description="Compile any extensions test classes">
+        <mkdir dir="${tests.extensions.build.dir}" />
+        <javac srcdir="${tests.extensions.dir}" 
+               destdir="${tests.extensions.build.dir}" 
+               debug="${debug}"
+               classpathref="extensions.class.path" 
+        	   nowarn="${compiler.nowarn}"/>
+        <!-- Add more javac calls if we add more Java extensions dirs -->        
+    </target>
+
+    <!-- This target compiles both the main tests and test drivers 
+         in testxsl.jar from the java/ directory, as well as 
+         various other classes in subdirs under tests/
+    -->
+    <target name="all" description="Build testxsl.jar *and* compile .java under tests/"
+        depends="jar,bugzilla.classes,extensions.classes">
+    </target>
+
+    <target name="main"
+        depends="all"
+        description="Alias for all">
+    </target>
+
+    <!-- =================================================================== -->
+    <!-- Various targets to clean the build tree                             -->
+    <!-- =================================================================== -->
+    <target name="distclean" depends="clean"
+        description="Clean everything, including most test results!" >
+        <delete dir="${alltest.resultDir}" />
+        <delete dir="${api.outputDir}" />
+        <delete dir="${conf.outputDir}" />
+        <delete dir="${perf.outputDir}" />
+        <delete dir="${contrib.outputDir}" />
+        <delete dir="${smoketest.outputDir}" />
+    </target>
+
+    <target name="clean"
+        description="Clean up the compiled tests and docs">
+        <delete dir="${test.build.dir}"/>
+        <delete dir="${tests.bugzilla.build.dir}"/>
+        <delete dir="${tests.extensions.build.dir}"/>
+        <delete dir="${xdocs.style}"/> <!-- init.build.docs creates this tree -->
+    </target>
+
+
+    <!-- ================================================================== -->
+    <!-- Build docs: Creates the User's Guide                               -->
+    <!-- ================================================================== -->
+    <target name="docs" depends="init.docs"
+        description="Build the framework/overview docs for tests">
+        <java fork="yes" 
+            classname="${doc.generator}" 
+            classpathref="test.docs.class.path" >
+            <arg line="targetDirectory=${test.build.docs} ${test.xdocs.book} ${test.xdocs.style}"/>
+        </java>	 
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Build docs: Creates the Javadoc API documentation                  -->
+    <!-- ================================================================== -->
+    <target name="javadocs" depends="init.docs"
+        description="Build the Javadocs for tests">
+            
+        <!-- Ant 1.2 ignores destdir arg if doclet is set, so must send to doclet in doclet subelement dleslie-->    
+        <!-- But: Ant 1.3 fails if you *don't* provide destdir attr... curcuru-->    
+        <javadoc
+             sourcepath="${test.src.dir}"
+             packagenames="org.apache.qetest,org.apache.qetest.xslwrapper,org.apache.qetest.xsl,org.apache.qetest.trax,org.apache.qetest.trax.dom,org.apache.qetest.trax.sax,org.apache.qetest.trax.stream,org.apache.qetest.xalanj2"
+             protected="true"
+             author="true"
+             version="true"
+             use="true"
+             windowtitle="Xalan Testing Framework" 
+             doctitle="Xalan Testing Framework"
+             bottom="Copyright &#169; ${year} The Apache Software Foundation.  All rights reserved."
+             destdir="${test.build.apidocs}">
+             <classpath refid="test.docs.class.path" />
+               <doclet name="xalanjdoc.Standard" path="${doclet.jar}">
+                  <param name="-d" value="${test.build.apidocs}"/>
+               </doclet>
+               <group title="QETEST Independent Framework" packages="org.apache.qetest"/>
+               <group title="Xalan Framework and Base tests" packages="org.apache.qetest.xsl:org.apache.qetest.xslwrapper"/>
+               <group title="JAXP/TrAX Generic Tests" packages="org.apache.qetest.trax:org.apache.qetest.trax.dom:org.apache.qetest.trax.sax:org.apache.qetest.trax.stream:"/>
+               <group title="Xalan-J 2.x Specific Tests" packages="org.apache.qetest.xalanj2:org.apache.qetest.xsltc:org.apache.qetest.dtm"/>
+        </javadoc>
+    </target>
+
+    <target name="printerdocs" depends="init.docs">
+      <echo message="${ant.project.name} currently doesn't support printerdocs; try docs or javadocs instead."/>
+    </target>
+
+    <!-- =================================================================== -->
+    <!-- Build distribution - simple zip/tar.gz for sharing tests            -->
+    <!-- =================================================================== -->
+    <target name="dist" depends="all,docs,javadocs,dist-nodeps"
+        description="Build a simple distribution module incl. docs">
+    </target>
+
+    <target name="dist-nodeps" depends="init.build"
+        description="Build a simple distribution module, without depends">
+        <echo message="Create .zip/.tar/gz in ${test.build.dir}" />
+
+        <!-- Build .tars, then .gzs, then cleanup .tars before doing .zips -->
+        <!-- Note ../.. paths to ensure archives start with 
+             top-level xml-xalan/test/blah directories
+        -->
+        <property name="tarzip-backref" value="../.."/>
+        <property name="tarzip-fwdref" value="xml-xalan/test"/>
+        
+        <!-- tar.gz just the xml/xsl/out test files -->
+        <tar tarfile="${test.build.dir}/xalan-tests-${DSTAMP}.tar">
+          <tarfileset dir="${tarzip-backref}">
+            <include name="${tarzip-fwdref}/tests/"/>
+          </tarfileset>
+        </tar>
+        <gzip src="${test.build.dir}/xalan-tests-${DSTAMP}.tar" 
+              zipfile="${test.build.dir}/xalan-tests-${DSTAMP}.tar.gz"/>
+        <delete file="${test.build.dir}/xalan-tests-${DSTAMP}.tar"/>
+              
+        <!-- tar.gz the automation and batch files, etc. -->
+        <tar tarfile="${test.build.dir}/xalan-automation-${DSTAMP}.tar">
+          <tarfileset dir="${tarzip-backref}">
+            <include name="${tarzip-fwdref}/*.*"/>
+            <include name="${tarzip-fwdref}/${testxsl.jar}"/>
+            <include name="${tarzip-fwdref}/${test.build.dir}/${test.root}"/>
+            <include name="${tarzip-fwdref}/${test.build.docs}/"/>
+            <include name="${tarzip-fwdref}/${test.build.apidocs}/"/>
+            <include name="${tarzip-fwdref}/java/xdocs/"/>
+            <include name="${tarzip-fwdref}/java/src/"/>
+            <include name="${tarzip-fwdref}/bin/"/>
+          </tarfileset>
+        </tar>
+        <gzip src="${test.build.dir}/xalan-automation-${DSTAMP}.tar" 
+              zipfile="${test.build.dir}/xalan-automation-${DSTAMP}.tar.gz"/>
+        <delete file="${test.build.dir}/xalan-automation-${DSTAMP}.tar"/>
+
+        <!-- Zip just the xml/xsl/out test files -->
+        <zip zipfile="${test.build.dir}/xalan-tests-${DSTAMP}.zip" >
+          <zipfileset dir="${tarzip-backref}">
+            <include name="${tarzip-fwdref}/tests/"/>
+          </zipfileset>
+        </zip>
+        <!-- Zip the automation and batch files, etc. -->
+        <zip zipfile="${test.build.dir}/xalan-automation-${DSTAMP}.zip" >
+          <zipfileset dir="${tarzip-backref}">
+            <include name="${tarzip-fwdref}/*.*"/>
+            <include name="${tarzip-fwdref}/${testxsl.jar}"/>
+            <include name="${tarzip-fwdref}/${test.build.dir}/${test.root}"/>
+            <include name="${tarzip-fwdref}/${test.build.docs}/"/>
+            <include name="${tarzip-fwdref}/${test.build.apidocs}/"/>
+            <include name="${tarzip-fwdref}/java/xdocs/"/>
+            <include name="${tarzip-fwdref}/java/src/"/>
+            <include name="${tarzip-fwdref}/bin/"/>
+          </zipfileset>
+        </zip>
+          
+        <!-- tar.gz just the documentation for potential posting to the website -->
+        <tar tarfile="${test.build.dir}/xalan-docs-${DSTAMP}.tar">
+          <tarfileset dir="..">
+            <include name="test/${test.build.docs}/"/>
+            <include name="test/${test.build.apidocs}/"/>
+            <include name="test/README.html"/>
+          </tarfileset>
+        </tar>
+        <gzip src="${test.build.dir}/xalan-docs-${DSTAMP}.tar" 
+              zipfile="${test.build.dir}/xalan-docs-${DSTAMP}.tar.gz"/>
+        <delete file="${test.build.dir}/xalan-docs-${DSTAMP}.tar"/>
+        <zip zipfile="${test.build.dir}/xalan-docs-${DSTAMP}.zip" >
+          <zipfileset dir="..">
+            <include name="test/${test.build.docs}/"/>
+            <include name="test/${test.build.apidocs}/"/>
+            <include name="test/README.html"/>
+          </zipfileset>
+        </zip>
+
+    </target>
+
+    <target name="export" depends="jar"
+        description="Build a very simple export of just the important sources">
+        <!-- Note that Shane has external dependencies on this target -->
+        <!-- Zip only the sources used in the plain 'jar' target -->
+        <zip zipfile="${test.build.dir}/testxsl-src-${DSTAMP}.zip" >
+          <zipfileset dir="java">
+            <include name="src/"/>
+            <!-- Don't copy qetesttest due to JUnit dependency -->
+            <exclude name="src/${test.root}qetesttest/"/>
+          </zipfileset>
+        </zip>
+          
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Special: Targets specific to XSLTC which requires extra .jars      -->
+    <!-- This section will be updated as xsltc integrates more with xalan   -->
+    <!-- ================================================================== -->
+    <!-- Actually, I'd like to figure out some sneaky Ant trick to 
+         allow swapping of parts of classpaths (i.e. swap in xsltc.jar 
+         and related files instead of xalan.jar; likewise replace 
+         xercesImpl.jar with the PARSER_JAR defined outside) to clean 
+         this section up.  But for the time being I'm planning on 
+         simply maintaining separate-but-equal targets.xsltc
+    -->
+
+    <path id="xsltc.runtime.class.path">
+        <pathelement location="${xalan.build.dir}/xalan.jar" />
+        
+        <!-- add xsltc.jar so we can test the separate jar distribution -->
+        <pathelement location="${xalan.build.dir}/xsltc.jar" />
+        <pathelement location="${ser.jar}" />
+         
+        <pathelement location="${testxsl.jar}" />
+        <pathelement location="${parserjar}" />
+        <pathelement location="${xml-apis.jar}" />
+        <pathelement location="${jtidy.jar}" />
+    </path>
+    <path id="xsltc.compile.class.path">
+        <pathelement location="${xalan.build.dir}/xalan.jar" />
+        
+        <!-- add xsltc.jar so we can test the separate jar distribution -->
+        <pathelement location="${xalan.build.dir}/xsltc.jar" />
+        
+        <pathelement location="${testxsl.jar}" />
+        <pathelement location="${parserjar}" />
+        <pathelement location="${xml-apis.jar}" />
+        <pathelement location="${jtidy.jar}" />
+        <!-- Note addition of . to the classpath to enable loading 
+             of translets; this needs more work and coordination 
+             with tests and translet output dirs.
+        -->
+        <pathelement location="." />
+    </path>
+
+	<target name="conf.xsltc" description="Run TestletDriver over the conf tree using xsltc">
+	    <!-- Set the default conformance test driver, user may override -->
+	    <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+	    <echo message="Executing Xalan-xsltc conf test: ${testClass}" />
+	    <!-- Special: allow explicit test.properties overrides for inputDir, etc for xsltc -->
+	    <property name="testType" value="conf.xsltc." />
+		<!-- Set indent-number to 0 to match Xalan's default indentation -->
+		<property name="${testType}Processor.setAttribute.indent-number" value="0"/>
+	    <antcall target="run.xalantest">
+	       <param name="xalantest.classpathref"
+	              value="xsltc.runtime.class.path" />
+	       <!-- Explicitly set TransformerFactory property to use xsltc -->
+	       <param name="sysprop.transfact"
+	              value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
+	    </antcall>
+	    <property name="scan.outputDir" value="${conf.xsltc.outputDir}"/>
+	    <antcall target="scan" />
+
+		<mkdir dir="results-xsltc-compile-verification-tests"/>
+	        
+	    <xsltcTestsTask inputDir="tests/xsltc/attribset" 
+	    	            resultDir="results-xsltc-compile-verification-tests" 
+	                    bootclasspathref="boot.class.path"/>
+
+	    <echo message=""/>
+		<echo message=" [minitest] Completed, running the 'xsltc compilation error verification' tests, and these have passed" />
+		<echo message=" [minitest] See details of the 'xsltc compilation error verification' test results, at results-xsltc-compile-verification-tests/actual_test_results.xml" />
+		
+	    <echo message=""/>
+		
+		<echo message=" [minitest] CONGRATULATIONS! The conf.xsltc tests passed!" />		
+	</target>
+
+    <target name="perf.xsltc" description="Run TestletDriver over the perf tree using xsltc">
+        <!-- Set the default conformance test driver, user may override -->
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Xalan-xsltc perf test: ${testClass}" />
+        <!-- Special: allow explicit test.properties overrides for inputDir, etc for xsltc -->
+        <property name="testType" value="perf.xsltc." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref"
+                   value="xsltc.runtime.class.path" />
+            <!-- Explicitly set TransformerFactory property to use xsltc -->
+            <param name="sysprop.transfact"
+                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${perf.xsltc.outputDir}"/>
+        </antcall>
+    </target>
+
+
+    <target name="perf.saxon" description="Run TestletDriver over the perf tree using Saxon">
+		<!-- New addition,  NOT TESTED -->
+        <!-- Set the default conformance test driver, user may override -->
+        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
+        <echo message="Executing Saxon perf test: ${testClass}" />
+        <!-- Special: allow explicit test.properties overrides for inputDir, etc for Saxon -->
+        <property name="testType" value="perf.saxon." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref"
+                   value="saxon.runtime.class.path" />
+            <!-- Explicitly set TransformerFactory property to use saxon -->
+            <param name="sysprop.transfact"
+                   value="org.saxon.trax.TransformerFactoryImpl" />
+        </antcall>
+        <antcall target="scan">
+            <param name="scan.outputDir" value="${perf.saxon.outputDir}"/>
+        </antcall>
+    </target>
+
+    <!-- ================================================================== -->
+    <!-- Run tests: a specific named API test with xsltc code               -->
+    <!-- ================================================================== -->
+    <target name="api.xsltc" description="Run a specific API test with xsltc code"
+        depends="init.test">
+        <!-- Note no default is set; also testClass is not prefixed! -->
+        <echo message="Executing Xalan-xsltc api test: ${testClass}" />
+        <property name="testType" value="api." />
+        <antcall target="run.xalantest">
+            <param name="xalantest.classpathref"
+                   value="xsltc.compile.class.path" />
+            <!-- Explicitly set TransformerFactory property to use xsltc -->
+            <param name="sysprop.transfact"
+                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
+        </antcall>
+    </target>
+
+  <!-- =================================================================== -->
+  <!-- Install/Uninstall targets - not currently applicable                -->
+  <!-- =================================================================== -->
+  <target name="install">
+    <echo message="${ant.project.name} currently doesn't support (un)installation; try jar or api instead"/>
+  </target>
+  <target name="uninstall">
+    <echo message="${ant.project.name} currently doesn't support (un)installation; try distclean instead"/>
+  </target>
+
+</project>
diff --git a/commits.xml b/commits.xml
new file mode 100644
index 00000000..91891160
--- /dev/null
+++ b/commits.xml
@@ -0,0 +1,2516 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<Commits>
+
+<Commit category="xsltc">
+<Who>zongaro@apache.org</Who>
+<DateCommitted>2004/02/27</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java NodeSortRecordFactory.java SortSettings.java</Modified>
+<Log>
+Restored old constructor of NodeSortRecordFactory and _collator field of
+NodeSortRecord for binary compatibility.  These changes allow translets
+compiled with an earlier version of XSLTC to continue to run with the new
+version.  They should not be used in newly compiled translets or in new code
+in XSLTC itself.<br/>
+
+Also introduced a SortSettings class that is used to bundle sort settings from
+NodeSortRecordFactory into instances of NodeSortRecord.  That reduces some of
+the space overhead in constructing a NodeSortRecord.<br/>
+
+Reviewed by Igor Hersht (igorh@ca.ibm.com)
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>zongaro@apache.org</Who>
+<DateCommitted>2004/02/27</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java</Modified>
+<Log>
+Revived ForwardPositionIterator class and BasisLibrary.positionF purely to
+support backwards compatibility with translets compiled with earlier versions
+of XSLTC.  New code should not reference either.<br/>
+
+Reviewed by Christine Li (jycli@ca.ibm.com).
+</Log>
+</Commit>
+
+<Commit category="core">
+<Who>minchau@apache.org</Who>
+<DateCommitted>2004/03/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/processor ProcessorImport.java ProcessorInclude.java ProcessorLRE.java 
+ProcessorStylesheetElement.java StylesheetHandler.java XSLTElementDef.java xml-xalan/java/src/org/apache/xalan/templates 
+ElemExsltFunction.java</Modified>
+<Log>
+Submitted by:	Brian Minchau<br/>
+
+Modified code for potential extension of classes with callbacks to the extensions.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>bhakti@apache.org</Who>
+<DateCommitted>2004/03/08</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties</Modified>
+<Log>
+Added a newline at the end of Encodings.properties to fix bug 27516
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>igorh@apache.org</Who>
+<DateCommitted>2004/03/09</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeCounter.java</Modified>
+<Log>
+xsl:number, minor code cleaning and optimization
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>bhakti@apache.org</Who>
+<DateCommitted>2004/03/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java</Modified>
+<Log>
+Check if the systemId for the stylesheet is null to avoid getting an NPE.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>jycli@apache.org</Who>
+<DateCommitted>2004/03/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xslt 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline ObjectFactory.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/dom ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm 
+ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm/ref ObjectFactory.java xml-xalan/java/src/org/apache/xml/serializer 
+ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java xml-xalan/java/src/org/apache/xpath/compiler 
+ObjectFactory.java xml-xalan/java/src/org/apache/xpath/functions ObjectFactory.java</Modified>
+<Log>
+Fix a bug in the findProviderClass method of ObjectFactory
+classes. The argument of SecurityManager.checkPackageAccess should be a string
+value of a package name, instead of a class name
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/03/16</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java</Modified>
+<Log>
+Reverting latest patch by Arun. There are some problems with the new code to invoke functions dynamically (e.g. docbook 
+reports a compile-time type check error). The approach taken to determine when to invoke methods dynamically needs to be revisted.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/03/23</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FunctionTable.java</Modified>
+<Log>
+Patch to hide static function table in FunctionTable class. We do not want to expose this table to others.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/03/23</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java</Modified>
+<Log>
+The xmlns URI should also be used to add NS decls as attributes to a DOM. However, this was only done for attributes that started 
+with 'xmlns:' and not for 'xmlns' (i.e. not for decls of the default NS).
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>mkwan@apache.org</Who>
+<DateCommitted>2004/03/24</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java</Modified>
+<Log>
+Patch for bug 27417.<br/>
+
+If an output stream is created by the XSLTC transformer, close
+it after the transformation.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>zongaro@apache.org</Who>
+<DateCommitted>2004/04/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyImports.java</Modified>
+<Log>
+Applying patch for bugs 27932 and 15333.<br/>
+
+Code was incorrectly calculating the set of templates to which an
+xsl:apply-imports instruction applies.  It should consider all templates that
+the current template rule could override, which means that if the template
+appeared in a stylesheet that was included in another stylesheet, any templates
+imported into the including stylesheet have to be considered as well.  The
+method Stylesheet.getMinimumDescendantPrecedence is responsible for this
+calculation.<br/>
+
+In addition, when code is generated for an xsl:apply-imports, if any template
+has local parameters, an empty stack frame has to be pushed before attempting
+to apply-imports.  Otherwise, parameters from the template that contains the
+apply-imports instruction will be passed into the matching template.<br/>
+
+Reviewed by Joanne Tong (joannet@ca.ibm.com)
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>zongaro@apache.org</Who>
+<DateCommitted>2004/04/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java</Modified>
+<Log>
+Applying patch for bug 27932.<br/>
+
+Code was incorrectly calculating the set of templates to which an
+xsl:apply-imports instruction applies.  It should consider all templates that
+the current template rule could override, which means that if the template
+appeared in a stylesheet that was included in another stylesheet, any templates
+imported into the including stylesheet have to be considered as well.  The
+method Stylesheet.getMinimumDescendantPrecedence is responsible for this
+calculation.<br/>
+
+Reviewed by Joanne Tong (joannet@ca.ibm.com)
+</Log>
+</Commit>
+<Commit category="core">
+<Who>igorh@apache.org</Who>
+<DateCommitted>2004/04/26</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/objects 
+DTMXRTreeFrag.java XRTreeFrag.java</Modified>
+<Log>
+The problem is that about 1800 * Thread_num  XRTreeFrag  objects were created. 
+It took too long for finalizer to be executed to release the references.<br/>
+
+A lot of the objects have the same DTMs (and one XPathContext per thread).
+In my fix I am suggesting 
+a. to have new class DTMXRTreeFrag. The object of the class would 
+be created only for different DTMs (just 5 objects). 
+b. release the references to  DTM and XPathContext from XPathContext.reset()
+(and remove finalize() ).
+</Log>
+</Commit>
+<Commit category="core">
+<Who>minchau@apache.org</Who>
+<DateCommitted>2004/04/27</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java xml-xalan/java/src/org/apache/xml/utils Trie.java</Modified>
+<Log>
+PR: bugzilla 28435<br/>
+Submitted by:	Brian Minchau<br/>
+Reviewed by:	Henry Zongaro<br/>
+</Log>
+</Commit>
+<Commit category="core">
+<Who>igorh@apache.org</Who>
+<DateCommitted>2004/04/28</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates AVT.java</Modified>
+<Log>
+Scaling Problem in org/apache/xalan/templates/AVT.evaluate
+The problem is that synchronized calls 
+StringBufferPool.get() and StringBufferPool.free(buf)  
+are redundant if (null != m_simpleString).
+The bug results in severe performance derogation in multi-thread test.
+
+The fix is simple just not to the calls when (null != m_simpleString).
+</Log>
+</Commit>
+<Commit category="core">
+<Who>mcnamara@apache.org</Who>
+<DateCommitted>2004/05/03</DateCommitted>
+<Modified> xml-xalan/java/xdocs/style/stylesheets designdoc2html.xsl</Modified>
+<Log>
+Provide alternative text for images to address accessibility issues.
+All images should contain a short alternative text description that represents
+the function of the graphic.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>mcnamara@apache.org</Who>
+<DateCommitted>2004/05/03</DateCommitted>
+<Modified> xml-xalan/java/xdocs xml-site-style.tar.gz</Modified>
+<Log>
+Update document2html.xsl within this tarball to provide alternative text for images to address accessibility issues.
+All images should contain a short alternative text description that represents the function of the graphic.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>minchau@apache.org</Who>
+<DateCommitted>2004/05/03</DateCommitted>
+<Modified> xml-xalan/java/samples/SAX2SAX SAX2SAX.java xml-xalan/java/samples/Pipe Pipe.java xml-xalan/java/samples/DOM2DOM DOM2DOM.java
+xml-xalan/java/samples/UseStylesheetPI foo.xsl xml-xalan/java/samples/UseStylesheetParam foo.xsl
+xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java
+xml-xalan/java/samples/Trace foo.xsl</Modified>
+<Log>
+Clean up related to bugzilla 24304.
+There is no longer a space after the XML header. To keep the output
+of this sample the same as before properties were set on the
+serializer (indent="yes" and standalone="no" ).
+Submitted by:	Brian Minchau
+Reviewed by:	Sarah McNamara
+</Log>
+</Commit>
+<Commit category="core">
+<Who>igorh@apache.org</Who>
+<DateCommitted>2004/05/06</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates AVT.java</Modified>
+<Log>
+The problem is that we use an object pool (shared between different threads)
+to allocate  FastStringBuffer objects. The problem results in a serious performance
+degradation  on Z/OS and seems to be invisible on AIX.<br/>
+1 Differences in optimization of object pools  for different JVMs and for different 
+platforms are known(I know it now too). It is not surprising that  Z/OS and AIX 
+have different results.<br/>
+2. a. Object pools should be used only for very heavy object which live for a long time
+and could be reused in a lot of places. 
+b. Small local objects which size cannot be changed could be allocated on the
+stack =&gt; creating them with new in the local scope could be a good idea.
+c. Caching middle size objects which can grow in size seems as a good idea,
+because such objects usually cannot be allocated on the stack.<br/>
+This is actually the case for FastStringBuffer objects. <br/>
+Solution<br/>
+I am creating FastStringBuffer objects in a local scope. I am going
+to use caching whenever possible. 
+</Log>
+</Commit>
+<Commit category="core">
+<Who>minchau@apache.org</Who>
+<DateCommitted>2004/05/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java</Modified>
+<Log>
+Submitted by:	Brian Minchau<br/>
+Reviewed by:	Christine Li<br/>
+Fixing binary compatibility (serialization/de-serialization) of XSLTProcessorApplet.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>bhakti@apache.org</Who>
+<DateCommitted>2004/05/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java</Modified>
+<Log>
+In xsltc currently with the extension redirect the output file is created only if the parent dir exists. 
+Making the behaviour similar to that of xalan wherein the parent directory is also created.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/05/20</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java</Modified>
+<Log>
+Fix for Bugzilla 29120. The translet now stores a reference to the DocumentBuilderFactory which is used by 
+nodeList2Iterator() in the basis library. Note that to reuse that reference you need to use the same transformer 
+(not just the same template).
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/05/21</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeValueTemplate.java</Modified>
+<Log>
+Implemented a new parser for ATVs. The old was buggy: did not handle escaped curly braces in all cases and did 
+not handled quotes at all. The old parser assumed that braces came in pairs, but it is possible to have an odd 
+number as in "{{{$foo}}}". The new parser seems to handle all cases correctly.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/05/21</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralAttribute.java LiteralElement.java Parser.java 
+SyntaxTreeNode.java</Modified>
+<Log>
+Modified code to ensure line number information is propagated from parent to children to ensure we get informative 
+error messages. This was particularly bad for errors in ATVs.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/05/25</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java</Modified>
+<Log>
+Improved patch for Bugzilla 29120 based on Matthias' suggestion. A DOMImplementation is now cached for even better performance.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>jycli@apache.org</Who>
+<DateCommitted>2004/05/26</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java Stylesheet.java</Modified>
+<Log>
+If the local is set to Turkish, but the codepage is MS-DOS (US) 437. The BCEL
+InstructionFinder.search(String) method can not find any instructions contain
+letter I. In Turkish, there are 2 lower case i.  Since the search() method is case
+insensitive, change the pattern string to use lower case.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>minchau@apache.org</Who>
+<DateCommitted>2004/06/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/serializer ToStream.java</Modified>
+<Log>
+PR: bugzilla 29234<br/>
+Submitted by:	Brian Minchau<br/>
+Reviewed by:	Morris Kwan<br/>
+This problem only showed up under XSLTC.  When setting the
+encoding a related field was not set.  Fixed this by over-riding the 
+set method for the stream serializers.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>minchau@apache.org</Who>
+<DateCommitted>2004/06/07</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java</Modified>
+<Log>
+PR: bugzilla 29372<br/>
+Submitted by:	J Desrochers (john@ASCnet.COM)<br/>
+Reviewed by:	Brian Minchau<br/>
+
+A safe fix for chunking up an array for output. The length  was multiplied by the
+chunk number (0,1,2... chunks) then divided by "chunks". John's fix uses a 
+"long" to do the arithemetic because multiplying by the chunk number first 
+could cause an overflow.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/06/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java</Modified>
+<Log>
+Patch for Bugzilla 29411. New algorithm shoudl optimize the way NS decls are reported for nested literal 
+elements. Note that the algorithm will not work accross non-literal elements. E.g., if there is an 
+xsl:element between two literal elements, the inner literal element may report unnecessary NS delcs. 
+This is just a simple way to ensure that any NS decls defined by the xsl:element instruction are re-defined 
+in the inner literal (see namespace39 in the conf tests).
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/06/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java</Modified>
+<Log>
+Fixed a problem with peephole optimization patterns. I don't know if something changed in BCEL since the 
+code was written, but the pattern syntax was not correct. I've also added a new common peephole pattern 
+which should reduce then inner loop's length in some Translets.
+</Log>
+</Commit>
+<Commit category="core">
+<Who>zongaro@apache.org</Who>
+<DateCommitted>2004/06/17</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/axes ChildIterator.java</Modified>
+<Log>
+Fix for Bugzilla bug 28879.  Classes derived from NodeTest need to ensure
+that initNodeTest is called to set the filter for the kinds of nodes accepted.
+Without this change, ChildIterator will reject all nodes.<br/>
+
+Patch reviewed by Christine Li (jycli@ca.ibm.com).
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>igorh@apache.org</Who>
+<DateCommitted>2004/06/21</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java xml-xalan/java/src/org/apache/xalan/xsltc/util 
+IntegerArray.java</Modified>
+<Log>
+Fix for Bugzilla Bugs 28622.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>santiagopg@apache.org</Who>
+<DateCommitted>2004/06/24</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java StringType.java Type.java</Modified>
+<Log>
+Patch for Bugzilla 27539 and related problems. The main problem was that hashCode() was not implemented 
+correctly in ObjectType. To eleminate further problems I also removed Type.ObjectString as this type is the 
+same as Type.String and the latter can be used in place of the former.
+</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>aruny@apache.org</Who>
+<DateCommitted>2004/07/15</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java</Modified>
+<Log>
+Description: getNode should return the result DOM tree once TransformerHandler completes the transformation.
+</Log>
+</Commit>
+<Commit category="xsltc">
... 399404 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org