You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jk...@apache.org on 2023/10/17 20:47:49 UTC

[xalan-java] branch maven-build created (now 1d58cdd6)

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

jkesselm pushed a change to branch maven-build
in repository https://gitbox.apache.org/repos/asf/xalan-java.git


      at 1d58cdd6 Remove spurious manifest file.

This branch includes the following new commits:

     new ec4e605c Cutover from Ant-based build to Maven-based build:
     new c33e7a6e Fix Maven group/artifact identifiers
     new ff6e9e32 Late change: Fix xhtml errors
     new b1a50d0b Copy jarfiles up into build directory, for better compatibility with xalan-test.
     new 95681695 Update build and test instructions to reflect Mavenized xalan-java.
     new 1d58cdd6 Remove spurious manifest file.

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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


[xalan-java] 01/06: Cutover from Ant-based build to Maven-based build:

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ec4e605cb15b1d2ccf8d32e19da18227de837153
Author: kubycsolutions <ke...@kubyc.solutions>
AuthorDate: Sat Sep 2 13:11:56 2023 -0400

    Cutover from Ant-based build to Maven-based build:
    
    Restructures serializer, xalan, and samples as sub-modules with dependencies on each other.
    
    Avoids carrying binaries in the project; fetch from Maven Central, or (in the case of the Javadoc taglet) carry the source in our own project. As part of that, eliminates dependencies on outdated versions of some of these, specifically java_cup and jlex. JFlex has replaced JLex, which permitted/required handling the look-ahead cases in the grammer rather than by reading ahead via code.
    
    Reworks "site" (documentation) generation. Some files may be landing in diffrent locations in the resulting directory tree; if that's an issue, it can be fine-tuned. Some javadoc errors were (sloppily) fixed before discovering that I can turn off "doclint" and let them continue to be warnings rather than build errors; these should be fixed properly at some point (in many cases by switching to using javadoc inheritance). Some files were converted from HTML to XHTML, since Maven's doc p [...]
    
    JavaCupRedirect is no longer needed.
    
    On Windows, javadoc needed javax.rmi as an explicit dependency.
    
    CAVEAT: Some things wind up in different places than they did in the Ant build. If that bothers folks we can do more work to resove it, but I think it's mostly harmless.
    
    TODO: We still have some StyleBook files as well, mostly for the design documentation. I'm handling those with a "stylebook_docgen" script for now, invoked from the mvnbuild script/batch file; that should be moved into the pom's logic.
    
    NOT YET DONE: More of the non-Java files may want to be moved into resource subdirectories.
---
 .classpath                                         |   31 +-
 .gitignore                                         |    3 +-
 .project                                           |   22 +-
 .settings/org.eclipse.jdt.core.prefs               |    1 +
 META-INF/MANIFEST.MF                               |    6 +
 META-INF/maven/org.apache.bcel/bcel/pom.properties |    3 +
 commits.xml => ancient_history.commits.xml         |    0
 build.bat                                          |   70 -
 build.sh                                           |   90 -
 deprecated_build.sh                                |   73 -
 lib/bcel-6.7.0.jar                                 |  Bin 716107 -> 0 bytes
 lib/bsf.jar                                        |  Bin 113369 -> 0 bytes
 lib/commons-logging-1.2.jar                        |  Bin 61829 -> 0 bytes
 lib/endorsed/xercesImpl.jar                        |  Bin 1446149 -> 0 bytes
 lib/endorsed/xml-apis.jar                          |  Bin 228394 -> 0 bytes
 lib/javaee-api-5.0-2.jar                           |  Bin 753070 -> 0 bytes
 lib/regexp.jar                                     |  Bin 29871 -> 0 bytes
 lib/rhino-1.7.14.jar                               |  Bin 1383644 -> 0 bytes
 lib/runtime.jar                                    |  Bin 7820 -> 0 bytes
 lib/servlet-api-2.5.jar                            |  Bin 134133 -> 0 bytes
 mvnbuild.bat                                       |    4 +
 mvnbuild.sh                                        |    4 +
 pom.xml                                            |  194 ++
 samples/ApplyXPath/ApplyXPath.java                 |  141 -
 samples/ApplyXPathDOM/ApplyXPathDOM.java           |  154 -
 samples/CompiledApplet/TransformApplet.java        |  260 --
 samples/CompiledBrazil/TransformHandler.java       |  154 -
 samples/CompiledEJB/TransformBean.java             |  117 -
 samples/CompiledEJB/TransformHome.java             |   33 -
 samples/CompiledEJB/TransformRemote.java           |   33 -
 samples/CompiledEJB/TransformServlet.java          |   90 -
 samples/CompiledJAXP/Compile.java                  |   64 -
 samples/CompiledJAXP/Transform.java                |   73 -
 samples/CompiledServlet/CompileServlet.java        |   76 -
 samples/CompiledServlet/TransformServlet.java      |   99 -
 samples/DOM2DOM/DOM2DOM.java                       |  107 -
 samples/Pipe/Pipe.java                             |   85 -
 samples/SAX2SAX/SAX2SAX.java                       |  108 -
 samples/SimpleTransform/SimpleTransform.java       |   60 -
 samples/Trace/Trace.java                           |   91 -
 samples/TransformThread/TransformThread.java       |  323 --
 samples/UseStylesheetPI/UseStylesheetPI.java       |   55 -
 samples/UseStylesheetParam/UseStylesheetParam.java |   61 -
 samples/UseXMLFilters/UseXMLFilters.java           |  101 -
 samples/Validate/Validate.java                     |  270 --
 samples/Validate/ValidateXMLInput.java             |  115 -
 samples/XPathAPI/ApplyXPathJAXP.java               |  178 -
 samples/XPathAPI/ExtensionFunctionResolver.java    |   89 -
 samples/XPathAPI/ExtensionTest.java                |   25 -
 samples/XPathAPI/XPathResolver.java                |  157 -
 samples/extensions/IntDate.java                    |   36 -
 samples/extensions/MyCounter.java                  |   58 -
 .../sql/ext-connection/ExternalConnection.java     |  105 -
 {lib => samples/lib}/brazil-2.1.jar                |  Bin
 samples/pom.xml                                    |  127 +
 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/src/main/java/org/apache/xalan/App.java    |   13 +
 .../xalan/samples}/AppletXMLtoHTML/README.html     |    0
 .../samples}/AppletXMLtoHTML/appletXMLtoHTML.html  |    0
 .../xalan/samples}/AppletXMLtoHTML/client.html     |    0
 .../xalan/samples}/AppletXMLtoHTML/foo-s1.xml      |    0
 .../xalan/samples}/AppletXMLtoHTML/lts3611beac.jpg |    0
 .../xalan/samples}/AppletXMLtoHTML/rabbitwhorn.jpg |  Bin
 .../xalan/samples}/AppletXMLtoHTML/s1ToHTML.xsl    |    0
 .../xalan/samples}/AppletXMLtoHTML/target.html     |    0
 .../apache/xalan/samples}/AppletXMLtoHTML/trax.xml |    0
 .../samples}/AppletXMLtoHTML/xalanApplets.xml      |    0
 .../xalan/samples/ApplyXPath/ApplyXPath.java       |  142 +
 .../org/apache/xalan/samples}/ApplyXPath/foo.xml   |    0
 .../apache/xalan/samples}/ApplyXPath/readme.html   |    0
 .../xalan/samples/ApplyXPathDOM/ApplyXPathDOM.java |  157 +
 .../apache/xalan/samples}/ApplyXPathDOM/foo.xml    |    0
 .../xalan/samples}/ApplyXPathDOM/readme.html       |    0
 .../xalan/samples}/CompiledApplet/README.applet    |    0
 .../samples/CompiledApplet/TransformApplet.java    |  261 ++
 .../xalan/samples}/CompiledApplet/index.html       |    0
 .../apache/xalan/samples}/CompiledApplet/menu.html |    0
 .../samples}/CompiledApplet/singleTransform.html   |    0
 .../xalan/samples}/CompiledBrazil/README.brazil    |    0
 .../samples/CompiledBrazil/TransformHandler.java   |  155 +
 .../apache/xalan/samples}/CompiledEJB/README.ejb   |    0
 .../xalan/samples/CompiledEJB/TransformBean.java   |  118 +
 .../xalan/samples/CompiledEJB/TransformHome.java   |   35 +
 .../xalan/samples/CompiledEJB/TransformRemote.java |   35 +
 .../samples/CompiledEJB/TransformServlet.java      |   92 +
 .../xalan/samples}/CompiledEJB/bottom_frame.html   |    0
 .../apache/xalan/samples}/CompiledEJB/index.html   |    0
 .../xalan/samples}/CompiledEJB/top_frame.html      |    0
 .../apache/xalan/samples/CompiledJAXP/Compile.java |   65 +
 .../xalan/samples}/CompiledJAXP/README.cjaxp       |    0
 .../xalan/samples/CompiledJAXP/Transform.java      |   74 +
 .../samples/CompiledServlet/CompileServlet.java    |   78 +
 .../xalan/samples}/CompiledServlet/README.servlet  |    0
 .../CompiledServlet/TransformationServlet.java     |  100 +
 .../org/apache/xalan/samples/DOM2DOM/DOM2DOM.java  |  108 +
 .../org/apache/xalan/samples}/DOM2DOM/birds.xml    |    0
 .../org/apache/xalan/samples}/DOM2DOM/birds.xsl    |    0
 .../org/apache/xalan/samples}/DOM2DOM/readme.html  |    0
 .../java/org/apache/xalan/samples/Pipe/Pipe.java   |   86 +
 .../java/org/apache/xalan/samples}/Pipe/foo.xml    |    0
 .../java/org/apache/xalan/samples}/Pipe/foo1.xsl   |    0
 .../java/org/apache/xalan/samples}/Pipe/foo2.xsl   |    0
 .../java/org/apache/xalan/samples}/Pipe/foo3.xsl   |    0
 .../org/apache/xalan/samples}/Pipe/readme.html     |    0
 .../org/apache/xalan/samples/SAX2SAX/SAX2SAX.java  |  109 +
 .../org/apache/xalan/samples}/SAX2SAX/birds.xml    |    0
 .../org/apache/xalan/samples}/SAX2SAX/birds.xsl    |    0
 .../java/org/apache/xalan/samples}/SAX2SAX/foo.xml |    0
 .../java/org/apache/xalan/samples}/SAX2SAX/foo.xsl |    0
 .../samples/SimpleTransform/SimpleTransform.java   |   61 +
 .../xalan/samples}/SimpleTransform/birds.xml       |    0
 .../xalan/samples}/SimpleTransform/birds.xsl       |    0
 .../apache/xalan/samples}/SimpleTransform/foo.xml  |    0
 .../apache/xalan/samples}/SimpleTransform/foo.xsl  |    0
 .../xalan/samples}/SimpleTransform/readme.html     |    0
 .../java/org/apache/xalan/samples/Trace/Trace.java |   93 +
 .../java/org/apache/xalan/samples}/Trace/foo.xml   |    0
 .../java/org/apache/xalan/samples}/Trace/foo.xsl   |    0
 .../samples/TransformThread/TransformThread.java   |  324 ++
 .../apache/xalan/samples}/TransformThread/foo0.xml |    0
 .../apache/xalan/samples}/TransformThread/foo0.xsl |    0
 .../apache/xalan/samples}/TransformThread/foo1.xml |    0
 .../apache/xalan/samples}/TransformThread/foo1.xsl |    0
 .../samples/UseStylesheetPI/UseStylesheetPI.java   |   56 +
 .../apache/xalan/samples}/UseStylesheetPI/foo.xsl  |    0
 .../apache/xalan/samples}/UseStylesheetPI/fooX.xml |    0
 .../UseStylesheetParam/UseStylesheetParam.java     |   61 +
 .../xalan/samples}/UseStylesheetParam/foo.xml      |    0
 .../xalan/samples}/UseStylesheetParam/foo.xsl      |    0
 .../xalan/samples}/UseStylesheetParam/readme.html  |    0
 .../xalan/samples/UseXMLFilters/UseXMLFilters.java |  102 +
 .../apache/xalan/samples}/UseXMLFilters/foo.xml    |    0
 .../apache/xalan/samples}/UseXMLFilters/foo1.xsl   |    0
 .../apache/xalan/samples}/UseXMLFilters/foo2.xsl   |    0
 .../apache/xalan/samples}/UseXMLFilters/foo3.xsl   |    0
 .../xalan/samples}/UseXMLFilters/readme.html       |    0
 .../apache/xalan/samples/Validate/Validate.java    |  271 ++
 .../xalan/samples/Validate/ValidateXMLInput.java   |  117 +
 .../org/apache/xalan/samples}/Validate/birds.xml   |    0
 .../org/apache/xalan/samples}/Validate/birds.xsl   |    0
 .../org/apache/xalan/samples}/Validate/readme.html |    0
 .../xalan/samples/XPathAPI/ApplyXPathJAXP.java     |  179 +
 .../XPathAPI/ExtensionFunctionResolver.java        |   90 +
 .../xalan/samples/XPathAPI/ExtensionTest.java      |   26 +
 .../xalan/samples/XPathAPI/XPathResolver.java      |  158 +
 .../org/apache/xalan/samples}/XPathAPI/foo.xml     |    0
 .../org/apache/xalan/samples}/XPathAPI/numlist.xml |    0
 .../apache/xalan/samples}/extensions/1-redir.xml   |    0
 .../apache/xalan/samples}/extensions/1-redir.xsl   |    0
 .../xalan/samples}/extensions/2-basicJscript.xml   |    0
 .../xalan/samples}/extensions/2-basicJscript.xsl   |    0
 .../xalan/samples}/extensions/3-java-namespace.xml |    0
 .../xalan/samples}/extensions/3-java-namespace.xsl |    0
 .../xalan/samples}/extensions/4-numlistJava.xsl    |    0
 .../xalan/samples}/extensions/5-numlistJscript.xsl |    0
 .../apache/xalan/samples/extensions/IntDate.java   |   37 +
 .../apache/xalan/samples/extensions/MyCounter.java |   59 +
 .../apache/xalan/samples}/extensions/numlist.xml   |    0
 .../apache/xalan/samples}/extensions/readme.html   |    0
 .../samples}/extensions/sql/GETTING_STARTED.txt    |    0
 .../extensions/sql/basic-connection/DumpSQL.xsl    |    0
 .../extensions/sql/basic-connection/dbinfo.xml     |    0
 .../sql/basic-connection/dbtest-cinfo.xsl          |    0
 .../extensions/sql/basic-connection/dbtest.xsl     |    0
 .../extensions/sql/basic-connection/readme.html    |    0
 .../xalan/samples}/extensions/sql/createdb.sql     |    0
 .../sql/extConnection/ExternalConnection.java      |  107 +
 .../extensions/sql/extConnection}/dbtest.xsl       |    0
 .../extensions/sql/extConnection}/readme.html      |    0
 .../samples}/extensions/sql/pquery/dbinfo.xml      |    0
 .../samples}/extensions/sql/pquery/dbtest.xsl      |    0
 .../samples}/extensions/sql/pquery/readme.html     |    0
 .../xalan/samples}/extensions/sql/readme.html      |    0
 .../xalan/samples}/extensions/sql/runDerby.bat     |    0
 .../xalan/samples}/extensions/sql/runDerby.sh      |    0
 .../samples}/extensions/sql/runExtConnection.bat   |    0
 .../samples}/extensions/sql/runExtConnection.sh    |    0
 .../xalan/samples}/extensions/sql/runXalan.bat     |    0
 .../xalan/samples}/extensions/sql/runXalan.sh      |    0
 .../samples}/extensions/sql/show-error/dbinfo.xml  |    0
 .../extensions/sql/show-error/invalidConn.xsl      |    0
 .../extensions/sql/show-error/invalidPQuery.xsl    |    0
 .../extensions/sql/show-error/invalidQuery.xsl     |    0
 .../samples}/extensions/sql/show-error/readme.html |    0
 .../extensions/sql/streamable/cachedNodes.xsl      |    0
 .../samples}/extensions/sql/streamable/dbinfo.xml  |    0
 .../samples}/extensions/sql/streamable/pivot.xsl   |    0
 .../samples}/extensions/sql/streamable/readme.html |    0
 .../extensions/sql/streamable/streamNodes.xsl      |    0
 .../apache/xalan/samples/servlet/ApplyXSLT.java    |  854 +++++
 .../xalan/samples/servlet/ApplyXSLTException.java  |  175 +
 .../xalan/samples/servlet/ApplyXSLTListener.java   |  102 +
 .../xalan/samples/servlet/ApplyXSLTProperties.java |  165 +
 .../servlet/DefaultApplyXSLTProperties.java        |  272 ++
 .../xalan/samples/servlet/SimpleXSLTServlet.java   |   85 +
 .../samples/servlet/UseStylesheetParamServlet.java |  103 +
 .../samples/servlet/XSLTServletWithParams.java     |  147 +
 .../org/apache/xalan/samples}/servlet/birds.xml    |    0
 .../org/apache/xalan/samples}/servlet/birds.xsl    |    0
 .../apache/xalan/samples}/servlet/booklist1.xsl    |    0
 .../apache/xalan/samples}/servlet/booklist2.xsl    |    0
 .../org/apache/xalan/samples}/servlet/catalog.xml  |    0
 .../org/apache/xalan/samples}/servlet/default.xsl  |    0
 .../org/apache/xalan/samples}/servlet/default2.xsl |    0
 .../org/apache/xalan/samples}/servlet/fooparam.xml |    0
 .../org/apache/xalan/samples}/servlet/fooparam.xsl |    0
 .../apache/xalan/samples}/servlet/jspSample.jsp    |    0
 .../apache/xalan/samples}/servlet/media.properties |    0
 .../org/apache/xalan/samples}/servlet/readme.html  |    0
 .../java/org/apache/xalan/samples}/servlet/web.xml |    0
 .../JAXPTransletMultipleTransformations.java       |   91 +
 .../translets/JAXPTransletOneTransformation.java   |   83 +
 .../apache/xalan/samples}/translets/readme.html    |    0
 .../org/apache/xalan/samples}/translets/todo.xml   |    0
 .../org/apache/xalan/samples}/translets/todo.xsl   |    0
 .../apache/xalan/samples}/translets/todotoo.xml    |    0
 .../xalan/samples/trax/ExampleContentHandler.java  |  119 +
 .../org/apache/xalan/samples/trax/Examples.java    |  846 +++++
 .../org/apache/xalan/samples}/trax/xml/baz.xml     |    0
 .../org/apache/xalan/samples}/trax/xml/foo.xml     |    0
 .../xalan/samples}/trax/xml/subdir1/foo2.xml       |    0
 .../samples}/trax/xml/subdir1/subdir2/foo3.xml     |    0
 .../org/apache/xalan/samples}/trax/xsl/baz.xsl     |    0
 .../org/apache/xalan/samples}/trax/xsl/foo.xsl     |    0
 .../org/apache/xalan/samples}/trax/xsl/foo2.xsl    |    0
 .../org/apache/xalan/samples}/trax/xsl/foo3.xsl    |    0
 .../apache/xalan/samples}/trax/xsl/inc1/inc1.xsl   |    0
 .../xalan/samples}/trax/xsl/inc1/inc2/inc2.xsl     |    0
 .../src/site/xhtml/AppletXMLtoHTML/README.xhtml    |   40 +
 .../xhtml/AppletXMLtoHTML/appletXMLtoHTML.xhtml    |   34 +
 .../src/site/xhtml/AppletXMLtoHTML/client.xhtml    |  137 +
 .../site/xhtml/AppletXMLtoHTML/target.xhtml}       |    0
 .../site/xhtml/ApplyXPath/readme.xhtml}            |    0
 .../site/xhtml/ApplyXPathDOM/readme.xhtml}         |    0
 samples/src/site/xhtml/CompiledApplet/index.xhtml  |   28 +
 samples/src/site/xhtml/CompiledApplet/menu.xhtml   |   68 +
 .../xhtml/CompiledApplet/singleTransform.xhtml     |   26 +
 .../src/site/xhtml/CompiledEJB/bottom_frame.xhtml  |   24 +
 samples/src/site/xhtml/CompiledEJB/index.xhtml     |   29 +
 samples/src/site/xhtml/CompiledEJB/top_frame.xhtml |  122 +
 .../site/xhtml/DOM2DOM/readme.xhtml}               |    0
 .../site/xhtml/Pipe/readme.xhtml}                  |    0
 .../site/xhtml/SimpleTransform/readme.xhtml}       |    0
 .../site/xhtml/UseStylesheetParam/readme.xhtml}    |    0
 .../site/xhtml/UseXMLFilters/readme.xhtml}         |    0
 .../site/xhtml/Validate/readme.xhtml}              |    0
 .../site/xhtml/extensions/readme.xhtml}            |    0
 .../extensions/sql/basic-connection/readme.xhtml}  |    0
 .../extensions/sql/extConnection/readme.xhtml}     |    0
 .../site/xhtml/extensions/sql/pquery/readme.xhtml} |    0
 .../site/xhtml/extensions/sql/readme.xhtml}        |    0
 .../xhtml/extensions/sql/show-error/readme.xhtml}  |    0
 .../xhtml/extensions/sql/streamable/readme.xhtml}  |    0
 .../site/xhtml/servlet/readme.xhtml}               |    0
 .../site/xhtml/translets/readme.xhtml}             |    0
 .../src/test/java/org/apache/xalan/AppTest.java    |   20 +
 samples/tools/xalan2jdoc.jar                       |  Bin 0 -> 124095 bytes
 {tools => samples/tools}/xalan2jtaglet.jar         |  Bin
 .../JAXPTransletMultipleTransformations.java       |   88 -
 .../translets/JAXPTransletOneTransformation.java   |   81 -
 samples/trax/ExampleContentHandler.java            |  117 -
 samples/trax/Examples.java                         |  844 -----
 serializer/.classpath                              |   22 +
 serializer/.gitignore                              |    1 +
 serializer/.project                                |   23 +
 .../.settings/org.eclipse.core.resources.prefs     |    5 +
 serializer/.settings/org.eclipse.jdt.core.prefs    |    8 +
 serializer/.settings/org.eclipse.m2e.core.prefs    |    4 +
 serializer/pom.xml                                 |  109 +
 .../org/apache/xml/serializer/Encodings.properties |    0
 .../apache/xml/serializer/HTMLEntities.properties  |    0
 .../org/apache/xml/serializer/Version.src          |    0
 .../apache/xml/serializer/XMLEntities.properties   |    0
 .../apache/xml/serializer/output_html.properties   |    0
 .../apache/xml/serializer/output_text.properties   |    0
 .../xml/serializer/output_unknown.properties       |    0
 .../apache/xml/serializer/output_xml.properties    |    0
 .../org/apache/xml/serializer/package.html         |    0
 .../src/main/java}/MANIFEST.SERIALIZER             |    0
 .../xml/serializer/AttributesImplSerializer.java   |    0
 .../java}/org/apache/xml/serializer/CharInfo.java  |    0
 .../org/apache/xml/serializer/DOM3Serializer.java  |  171 +
 .../org/apache/xml/serializer/DOMSerializer.java   |    0
 .../org/apache/xml/serializer/ElemContext.java     |    0
 .../java}/org/apache/xml/serializer/ElemDesc.java  |    0
 .../org/apache/xml/serializer/EmptySerializer.java |  822 +++++
 .../org/apache/xml/serializer/EncodingInfo.java    |  570 ++++
 .../java}/org/apache/xml/serializer/Encodings.java |    0
 .../xml/serializer/ExtendedContentHandler.java     |  272 ++
 .../xml/serializer/ExtendedLexicalHandler.java     |   39 +
 .../java}/org/apache/xml/serializer/Method.java    |    0
 .../apache/xml/serializer/NamespaceMappings.java   |  501 +++
 .../org/apache/xml/serializer/ObjectFactory.java   |    0
 .../xml/serializer/OutputPropertiesFactory.java    |    0
 .../apache/xml/serializer/OutputPropertyUtils.java |    0
 .../org/apache/xml/serializer/SecuritySupport.java |    0
 .../xml/serializer/SerializationHandler.java       |  152 +
 .../java/org/apache/xml/serializer/Serializer.java |  238 ++
 .../org/apache/xml/serializer/SerializerBase.java  | 1698 +++++++++
 .../apache/xml/serializer/SerializerConstants.java |   57 +
 .../apache/xml/serializer/SerializerFactory.java   |  187 +
 .../org/apache/xml/serializer/SerializerTrace.java |    0
 .../xml/serializer/SerializerTraceWriter.java      |    0
 .../apache/xml/serializer/ToHTMLSAXHandler.java    |  740 ++++
 .../org/apache/xml/serializer/ToHTMLStream.java    | 2336 +++++++++++++
 .../org/apache/xml/serializer/ToSAXHandler.java    |  436 +++
 .../java/org/apache/xml/serializer/ToStream.java   | 3593 +++++++++++++++++++
 .../apache/xml/serializer/ToTextSAXHandler.java    |  411 +++
 .../org/apache/xml/serializer/ToTextStream.java    |  622 ++++
 .../org/apache/xml/serializer/ToUnknownStream.java | 1316 +++++++
 .../org/apache/xml/serializer/ToXMLSAXHandler.java |  780 +++++
 .../org/apache/xml/serializer/ToXMLStream.java     |  643 ++++
 .../xml/serializer/TransformStateSetter.java       |   56 +
 .../java/org/apache/xml/serializer/TreeWalker.java |  530 +++
 .../java/org/apache/xml/serializer/Version.java    |  150 +
 .../org/apache/xml/serializer/WriterChain.java     |    0
 .../org/apache/xml/serializer/WriterToASCI.java    |    0
 .../xml/serializer/WriterToUTF8Buffered.java       |    0
 .../apache/xml/serializer/XSLOutputAttributes.java |  236 ++
 .../xml/serializer/dom3/DOM3SerializerImpl.java    |  158 +
 .../apache/xml/serializer/dom3/DOM3TreeWalker.java |    0
 .../apache/xml/serializer/dom3/DOMConstants.java   |    0
 .../xml/serializer/dom3/DOMErrorHandlerImpl.java   |    0
 .../apache/xml/serializer/dom3/DOMErrorImpl.java   |    0
 .../apache/xml/serializer/dom3/DOMLocatorImpl.java |    0
 .../apache/xml/serializer/dom3/DOMOutputImpl.java  |    0
 .../xml/serializer/dom3/DOMStringListImpl.java     |    0
 .../xml/serializer/dom3/LSSerializerImpl.java      | 1535 +++++++++
 .../xml/serializer/dom3/NamespaceSupport.java      |  336 ++
 .../java}/org/apache/xml/serializer/package.html   |    0
 .../org/apache/xml/serializer/utils/AttList.java   |    0
 .../org/apache/xml/serializer/utils/BoolStack.java |  204 ++
 .../apache/xml/serializer/utils/DOM2Helper.java    |    0
 .../org/apache/xml/serializer/utils/Messages.java  |    0
 .../org/apache/xml/serializer/utils/MsgKey.java    |    0
 .../xml/serializer/utils/SerializerMessages.java   |    0
 .../serializer/utils/SerializerMessages_ca.java    |    0
 .../serializer/utils/SerializerMessages_cs.java    |    0
 .../serializer/utils/SerializerMessages_de.java    |    0
 .../serializer/utils/SerializerMessages_en.java    |    0
 .../serializer/utils/SerializerMessages_es.java    |    0
 .../serializer/utils/SerializerMessages_fr.java    |    0
 .../serializer/utils/SerializerMessages_hu.java    |    0
 .../serializer/utils/SerializerMessages_it.java    |    0
 .../serializer/utils/SerializerMessages_ja.java    |    0
 .../serializer/utils/SerializerMessages_ko.java    |    0
 .../serializer/utils/SerializerMessages_pl.java    |    0
 .../serializer/utils/SerializerMessages_pt_BR.java |    0
 .../serializer/utils/SerializerMessages_ru.java    |    0
 .../serializer/utils/SerializerMessages_sk.java    |    0
 .../serializer/utils/SerializerMessages_sl.java    |    0
 .../serializer/utils/SerializerMessages_sv.java    |    0
 .../serializer/utils/SerializerMessages_tr.java    |    0
 .../serializer/utils/SerializerMessages_zh.java    |    0
 .../serializer/utils/SerializerMessages_zh_CN.java |    0
 .../serializer/utils/SerializerMessages_zh_TW.java |    0
 .../xml/serializer/utils/StringToIntTable.java     |    0
 .../xml/serializer/utils/SystemIDResolver.java     |    0
 .../java}/org/apache/xml/serializer/utils/URI.java |    0
 .../org/apache/xml/serializer/utils/Utils.java     |    0
 .../serializer/utils/WrappedRuntimeException.java  |    0
 .../org/apache/xml/serializer/utils/XML11Char.java |  414 +++
 .../org/apache/xml/serializer/utils/XMLChar.java   | 1026 ++++++
 serializer/tools/xalan2jdoc.jar                    |  Bin 0 -> 124095 bytes
 {tools => serializer/tools}/xalan2jtaglet.jar      |  Bin
 src/org/apache/xalan/Version.java                  |  153 +
 src/org/apache/xalan/lib/ExsltStrings.java         |  353 --
 src/org/apache/xalan/lib/Extensions.java           |  418 ---
 src/org/apache/xalan/lib/PipeDocument.java         |  230 --
 src/org/apache/xalan/lib/Redirect.java             |  490 ---
 .../xalan/processor/ProcessorExsltFunction.java    |  189 -
 src/org/apache/xalan/processor/ProcessorKey.java   |  156 -
 src/org/apache/xalan/processor/ProcessorLRE.java   |  369 --
 .../xalan/processor/ProcessorNamespaceAlias.java   |   97 -
 .../xalan/processor/ProcessorPreserveSpace.java    |   78 -
 .../xalan/processor/ProcessorStripSpace.java       |   78 -
 .../processor/ProcessorStylesheetElement.java      |  147 -
 .../apache/xalan/processor/StylesheetHandler.java  | 1724 ----------
 .../xalan/processor/TransformerFactoryImpl.java    | 1038 ------
 .../xalan/processor/XSLTElementProcessor.java      |  396 ---
 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_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_tr.java    | 1530 ---------
 .../apache/xalan/res/XSLTErrorResources_zh.java    | 1530 ---------
 .../apache/xalan/res/XSLTErrorResources_zh_TW.java | 1530 ---------
 .../apache/xalan/serialize/SerializerFactory.java  |  159 -
 .../apache/xalan/serialize/SerializerUtils.java    |  273 --
 .../xalan/templates/DecimalFormatProperties.java   |  404 ---
 .../apache/xalan/templates/ElemApplyImport.java    |  117 -
 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/ElemFallback.java   |  115 -
 src/org/apache/xalan/templates/ElemForEach.java    |  549 ---
 src/org/apache/xalan/templates/ElemIf.java         |  178 -
 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/ElemValueOf.java    |  335 --
 src/org/apache/xalan/templates/ElemVariable.java   |  538 ---
 src/org/apache/xalan/templates/ElemWhen.java       |  126 -
 src/org/apache/xalan/templates/ElemWithParam.java  |  265 --
 src/org/apache/xalan/templates/Stylesheet.java     | 1516 ---------
 .../xalan/transformer/TreeWalker2Result.java       |  155 -
 src/org/apache/xalan/xsltc/compiler/xpath.lex      |  257 --
 .../apache/xalan/xsltc/util/JavaCupRedirect.java   |   97 -
 src/org/apache/xml/res/XMLMessages.java            |  214 --
 src/org/apache/xml/serializer/DOM3Serializer.java  |  170 -
 src/org/apache/xml/serializer/EmptySerializer.java |  787 -----
 src/org/apache/xml/serializer/EncodingInfo.java    |  562 ---
 .../xml/serializer/ExtendedContentHandler.java     |  271 --
 .../xml/serializer/ExtendedLexicalHandler.java     |   39 -
 .../apache/xml/serializer/NamespaceMappings.java   |  500 ---
 .../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 -
 .../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 ---
 .../apache/xml/serializer/XSLOutputAttributes.java |  236 --
 .../xml/serializer/dom3/DOM3SerializerImpl.java    |  158 -
 .../xml/serializer/dom3/LSSerializerImpl.java      | 1537 ---------
 .../xml/serializer/dom3/NamespaceSupport.java      |  315 --
 src/org/apache/xml/serializer/utils/BoolStack.java |  204 --
 src/org/apache/xml/serializer/utils/XML11Char.java |  414 ---
 src/org/apache/xml/serializer/utils/XMLChar.java   | 1026 ------
 src/org/apache/xml/utils/BoolStack.java            |  202 --
 src/org/apache/xml/utils/IntStack.java             |  211 --
 src/org/apache/xml/utils/ObjectStack.java          |  215 --
 src/org/apache/xml/utils/UnImplNode.java           | 1977 -----------
 src/org/apache/xpath/ExpressionNode.java           |   52 -
 .../xpath/WhitespaceStrippingElementMatcher.java   |   54 -
 src/org/apache/xpath/axes/LocPathIterator.java     | 1033 ------
 .../apache/xpath/axes/OneStepIteratorForward.java  |  172 -
 src/xml-commons-external-1.3.02-src.tar.gz         |  Bin 311599 -> 0 bytes
 .../sources/design/compilation.gif                 |  Bin
 {xdocs => stylebook}/sources/design/conceptual.gif |  Bin
 {xdocs => stylebook}/sources/design/data.gif       |  Bin
 .../sources/design/design2_0_0.xml                 |    0
 {xdocs => stylebook}/sources/design/org_apache.gif |  Bin
 {xdocs => stylebook}/sources/design/process.gif    |  Bin
 {xdocs => stylebook}/sources/design/trax.gif       |  Bin
 {xdocs => stylebook}/sources/design/xalan.gif      |  Bin
 {xdocs => stylebook}/sources/design/xalan1_1x1.gif |  Bin
 {xdocs => stylebook}/sources/design/xmllogo.gif    |  Bin
 {xdocs => stylebook}/sources/design/xpath.gif      |  Bin
 .../sources/design/xslt_abstract.gif               |  Bin
 .../entities.src => stylebook/sources/entities.ent |    0
 {xdocs => stylebook}/sources/entities.src          |    0
 .../sources/xalan-apache-org-site.xml              |    0
 .../sources/xalan-apache-org/index.xml             |    0
 {xdocs => stylebook}/sources/xalan-collate.xsl     |    0
 {xdocs => stylebook}/sources/xalan-jlocal.xml      |    0
 {xdocs => stylebook}/sources/xalan-jsite.xml       |    0
 stylebook/sources/xalan/DONE                       |    0
 .../sources/xalan/bugreporting.xml                 |    0
 {xdocs => stylebook}/sources/xalan/builds.xml      |    0
 {xdocs => stylebook}/sources/xalan/charter.xml     |    0
 {xdocs => stylebook}/sources/xalan/commandline.xml |    0
 .../sources/xalan/commandline_xsltc.xml            |    0
 {xdocs => stylebook}/sources/xalan/contact_us.xml  |    0
 {xdocs => stylebook}/sources/xalan/downloads.xml   |    0
 {xdocs => stylebook}/sources/xalan/dtm.xml         |    0
 {xdocs => stylebook}/sources/xalan/extensions.xml  |    0
 .../sources/xalan/extensions_xsltc.xml             |    0
 .../sources/xalan/extensionslib.xml                |    0
 {xdocs => stylebook}/sources/xalan/faq.xml         |    0
 {xdocs => stylebook}/sources/xalan/features.xml    |    0
 {xdocs => stylebook}/sources/xalan/getstarted.xml  |    0
 {xdocs => stylebook}/sources/xalan/history.xml     |    0
 {xdocs => stylebook}/sources/xalan/index.xml       |    0
 {xdocs => stylebook}/sources/xalan/overview.xml    |    0
 {xdocs => stylebook}/sources/xalan/public_apis.xml |    0
 {xdocs => stylebook}/sources/xalan/readme.xml      |    0
 {xdocs => stylebook}/sources/xalan/resources.xml   |    0
 {xdocs => stylebook}/sources/xalan/samples.xml     |    0
 {xdocs => stylebook}/sources/xalan/trax.xml        |    0
 .../sources/xalan/usagepatterns.xml                |    0
 {xdocs => stylebook}/sources/xalan/whatsnew.xml    |    0
 stylebook/sources/xalan/xalan-collate.xml          |  107 +
 {xdocs => stylebook}/sources/xalan/xmlfilters.gif  |  Bin
 {xdocs => stylebook}/sources/xalan/xpath_apis.xml  |    0
 .../sources/xalan/xsltc_history.xml                |    0
 {xdocs => stylebook}/sources/xalan/xsltc_usage.xml |    0
 {xdocs => stylebook}/sources/xalandesign.xml       |    0
 {xdocs => stylebook}/sources/xsltc.xml             |    0
 .../sources/xsltc/DOMInterface.gif                 |  Bin
 {xdocs => stylebook}/sources/xsltc/DOMLocking.gif  |  Bin
 {xdocs => stylebook}/sources/xsltc/README          |    0
 {xdocs => stylebook}/sources/xsltc/README.APACHE   |    0
 {xdocs => stylebook}/sources/xsltc/README.api      |    0
 {xdocs => stylebook}/sources/xsltc/README.xslt     |    0
 {xdocs => stylebook}/sources/xsltc/README.xsltc    |    0
 {xdocs => stylebook}/sources/xsltc/README2         |    0
 .../sources/xsltc/all_namespaces.gif               |  Bin
 {xdocs => stylebook}/sources/xsltc/ast_stage1.gif  |  Bin
 {xdocs => stylebook}/sources/xsltc/ast_stage2.gif  |  Bin
 {xdocs => stylebook}/sources/xsltc/ast_stage3.gif  |  Bin
 .../sources/xsltc/cast_expression.gif              |  Bin
 .../sources/xsltc/class_loader.gif                 |  Bin
 .../sources/xsltc/compiler_AST.gif                 |  Bin
 .../sources/xsltc/compiler_DOM.gif                 |  Bin
 .../sources/xsltc/compiler_architecture.gif        |  Bin
 .../sources/xsltc/compiler_design.gif              |  Bin
 .../sources/xsltc/dom_namespace1.gif               |  Bin
 .../sources/xsltc/dom_namespace2.gif               |  Bin
 .../sources/xsltc/dom_namespace3.gif               |  Bin
 {xdocs => stylebook}/sources/xsltc/index.xml       |    0
 .../sources/xsltc/iterator_stack.gif               |  Bin
 .../sources/xsltc/key_relations.gif                |  Bin
 .../sources/xsltc/match_namespace1.gif             |  Bin
 .../sources/xsltc/match_namespace2.gif             |  Bin
 .../sources/xsltc/namespace_stack.gif              |  Bin
 .../sources/xsltc/output_namespaces1.gif           |  Bin
 .../sources/xsltc/output_namespaces2.gif           |  Bin
 .../sources/xsltc/output_settings.gif              |  Bin
 .../sources/xsltc/overall_design.gif               |  Bin
 .../sources/xsltc/pattern_objects.gif              |  Bin
 .../sources/xsltc/runtime_architecture.gif         |  Bin
 .../sources/xsltc/runtime_design.gif               |  Bin
 .../sources/xsltc/runtime_type_mapping.gif         |  Bin
 .../sources/xsltc/sort_objects.gif                 |  Bin
 .../sources/xsltc/translet_wrapping.gif            |  Bin
 .../sources/xsltc/trax_output_settings.gif         |  Bin
 .../sources/xsltc/trax_translet_wrapping.gif       |  Bin
 .../sources/xsltc/type_mapping.gif                 |  Bin
 .../sources/xsltc/type_mappings.gif                |  Bin
 {xdocs => stylebook}/sources/xsltc/typecast.gif    |  Bin
 .../sources/xsltc/uri_resolver.gif                 |  Bin
 .../sources/xsltc/xsl_choose_design.xml            |    0
 .../sources/xsltc/xsl_comment_design.xml           |    0
 .../sources/xsltc/xsl_if_design.xml                |    0
 .../sources/xsltc/xsl_include_design.xml           |    0
 .../sources/xsltc/xsl_key_design.xml               |    0
 .../sources/xsltc/xsl_lang_design.xml              |    0
 .../sources/xsltc/xsl_sort_design.xml              |    0
 .../sources/xsltc/xsl_unparsed_design.xml          |    0
 .../sources/xsltc/xsl_variable_design.xml          |    0
 .../sources/xsltc/xsl_whitespace_design.xml        |    0
 .../sources/xsltc/xsltc_compiler.xml               |    0
 {xdocs => stylebook}/sources/xsltc/xsltc_dom.xml   |    0
 .../sources/xsltc/xsltc_iterators.xml              |    0
 .../sources/xsltc/xsltc_namespace.xml              |    0
 .../sources/xsltc/xsltc_native_api.xml             |    0
 .../sources/xsltc/xsltc_overview.xml               |    0
 .../sources/xsltc/xsltc_performance.xml            |    0
 .../sources/xsltc/xsltc_predicates.xml             |    0
 .../sources/xsltc/xsltc_runtime.xml                |    0
 {xdocs => stylebook}/sources/xsltc/xsltc_trax.xml  |    0
 .../sources/xsltc/xsltc_trax_api.xml               |    0
 stylebook/style/dtd/blocks.ent                     |   40 +
 stylebook/style/dtd/book.dtd                       |   49 +
 stylebook/style/dtd/changes.dtd                    |   24 +
 stylebook/style/dtd/characters.ent                 |  297 ++
 stylebook/style/dtd/document.dtd                   |   19 +
 stylebook/style/dtd/faqs.dtd                       |   19 +
 stylebook/style/dtd/links.ent                      |   24 +
 stylebook/style/dtd/markup.ent                     |   21 +
 {xdocs => stylebook}/style/dtd/spec.dtd            |    0
 {xdocs => stylebook}/style/dtd/xsl-html40s.dtd     |    0
 stylebook/style/graphics/button-a.gif              |  Bin 0 -> 179 bytes
 stylebook/style/graphics/button-b.gif              |  Bin 0 -> 154 bytes
 stylebook/style/loader.xml                         |    9 +
 {xdocs => stylebook}/style/loaderdesign.xml        |    0
 stylebook/style/resources/bottom.gif               |  Bin 0 -> 1075 bytes
 stylebook/style/resources/button-asf-hi.gif        |  Bin 0 -> 1535 bytes
 stylebook/style/resources/button-asf-lo.gif        |  Bin 0 -> 1519 bytes
 stylebook/style/resources/button-w3c-hi.gif        |  Bin 0 -> 1503 bytes
 stylebook/style/resources/button-w3c-lo.gif        |  Bin 0 -> 1495 bytes
 stylebook/style/resources/button-xml-hi.gif        |  Bin 0 -> 1464 bytes
 stylebook/style/resources/button-xml-lo.gif        |  Bin 0 -> 1458 bytes
 stylebook/style/resources/close.gif                |  Bin 0 -> 498 bytes
 stylebook/style/resources/dot.gif                  |  Bin 0 -> 49 bytes
 stylebook/style/resources/join.gif                 |  Bin 0 -> 1268 bytes
 stylebook/style/resources/line.gif                 |  Bin 0 -> 924 bytes
 stylebook/style/resources/logo.gif                 |  Bin 0 -> 3223 bytes
 stylebook/style/resources/note.gif                 |  Bin 0 -> 295 bytes
 stylebook/style/resources/right.gif                |  Bin 0 -> 1202 bytes
 stylebook/style/resources/script.js                |   21 +
 stylebook/style/resources/separator.gif            |  Bin 0 -> 110 bytes
 stylebook/style/resources/void.gif                 |  Bin 0 -> 49 bytes
 stylebook/style/stylesheets/any2header.xsl         |   29 +
 stylebook/style/stylesheets/any2project.xsl        |   21 +
 stylebook/style/stylesheets/book2group.xsl         |   34 +
 stylebook/style/stylesheets/book2project.xsl       |  257 ++
 stylebook/style/stylesheets/changes2document.xsl   |   43 +
 stylebook/style/stylesheets/context2footer.xsl     |   29 +
 stylebook/style/stylesheets/context2label.xsl      |   25 +
 .../style/stylesheets/design2project.xsl           |    0
 .../style/stylesheets/designdoc2html.xsl           |    0
 stylebook/style/stylesheets/directory2project.xsl  |   34 +
 stylebook/style/stylesheets/document2html.xsl      |  445 +++
 stylebook/style/stylesheets/done.xsl               |   67 +
 stylebook/style/stylesheets/faqs2document.xsl      |   65 +
 stylebook/style/stylesheets/group2document.xsl     |   31 +
 {xdocs => stylebook}/style/stylesheets/spec.xsl    |    0
 {xdocs => stylebook}/style/stylesheets/xml2fo.xsl  |    0
 {tools => stylebook}/stylebook-1.0-b3_xalan-2.jar  |  Bin
 {xdocs => stylebook}/xml-site-style.tar.gz         |  Bin
 stylebook_docgen.bat                               |   56 +
 stylebook_docgen.sh                                |   55 +
 tools/JLex.jar                                     |  Bin 54603 -> 0 bytes
 tools/ant.jar                                      |  Bin 717666 -> 0 bytes
 tools/antRun                                       |    9 -
 tools/antRun.bat                                   |   36 -
 tools/java_cup.jar                                 |  Bin 62365 -> 0 bytes
 xalan/.classpath                                   |   33 +
 xalan/.gitignore                                   |    1 +
 xalan/.project                                     |   23 +
 xalan/.settings/org.eclipse.core.resources.prefs   |    7 +
 xalan/.settings/org.eclipse.jdt.core.prefs         |    8 +
 xalan/.settings/org.eclipse.m2e.core.prefs         |    4 +
 xalan/pom.xml                                      |  225 ++
 {src => xalan/src/main/java}/MANIFEST.MF           |    0
 {src => xalan/src/main/java}/MANIFEST.SERIALIZER   |    0
 .../javax.xml.transform.TransformerFactory         |    0
 .../META-INF/services/javax.xml.xpath.XPathFactory |    0
 .../org.apache.xalan.extensions.bsf.BSFManager     |    0
 .../services/org.apache.xml.dtm.DTMManager         |    0
 .../src/main/java}/manifest.xalan-interpretive     |    0
 {src => xalan/src/main/java}/manifest.xsltc        |    0
 xalan/src/main/java/org/apache/xalan/Version.java  |  153 +
 .../src/main/java}/org/apache/xalan/Version.src    |    0
 .../apache/xalan/client/XSLTProcessorApplet.java   |    0
 .../java}/org/apache/xalan/client/package.html     |    0
 .../apache/xalan/extensions/ExpressionContext.java |    0
 .../apache/xalan/extensions/ExpressionVisitor.java |    0
 .../apache/xalan/extensions/ExtensionHandler.java  |    0
 .../extensions/ExtensionHandlerExsltFunction.java  |    0
 .../xalan/extensions/ExtensionHandlerGeneral.java  |    0
 .../xalan/extensions/ExtensionHandlerJava.java     |    0
 .../extensions/ExtensionHandlerJavaClass.java      |    0
 .../extensions/ExtensionHandlerJavaPackage.java    |    0
 .../extensions/ExtensionNamespaceContext.java      |    0
 .../extensions/ExtensionNamespaceSupport.java      |    0
 .../extensions/ExtensionNamespacesManager.java     |    0
 .../apache/xalan/extensions/ExtensionsTable.java   |    0
 .../apache/xalan/extensions/MethodResolver.java    |    0
 .../org/apache/xalan/extensions/ObjectFactory.java |    0
 .../apache/xalan/extensions/SecuritySupport.java   |    0
 .../apache/xalan/extensions/XPathFunctionImpl.java |    0
 .../extensions/XPathFunctionResolverImpl.java      |    0
 .../xalan/extensions/XSLProcessorContext.java      |    0
 .../java}/org/apache/xalan/extensions/package.html |    0
 .../main/java}/org/apache/xalan/lib/ExsltBase.java |    0
 .../java}/org/apache/xalan/lib/ExsltCommon.java    |    0
 .../java}/org/apache/xalan/lib/ExsltDatetime.java  |    0
 .../java}/org/apache/xalan/lib/ExsltDynamic.java   |    0
 .../main/java}/org/apache/xalan/lib/ExsltMath.java |    0
 .../main/java}/org/apache/xalan/lib/ExsltSets.java |    0
 .../java/org/apache/xalan/lib/ExsltStrings.java    |  353 ++
 .../main/java/org/apache/xalan/lib/Extensions.java |  418 +++
 .../main/java}/org/apache/xalan/lib/NodeInfo.java  |    0
 .../java}/org/apache/xalan/lib/ObjectFactory.java  |    0
 .../java/org/apache/xalan/lib/PipeDocument.java    |  230 ++
 .../main/java/org/apache/xalan/lib/Redirect.java   |  490 +++
 .../org/apache/xalan/lib/SecuritySupport.java      |    0
 .../main/java}/org/apache/xalan/lib/package.html   |    0
 .../org/apache/xalan/lib/sql/ConnectionPool.java   |    0
 .../xalan/lib/sql/ConnectionPoolManager.java       |    0
 .../org/apache/xalan/lib/sql/DTMDocument.java      |    0
 .../xalan/lib/sql/DefaultConnectionPool.java       |    0
 .../apache/xalan/lib/sql/JNDIConnectionPool.java   |    0
 .../org/apache/xalan/lib/sql/ObjectArray.java      |    0
 .../org/apache/xalan/lib/sql/ObjectFactory.java    |    0
 .../org/apache/xalan/lib/sql/PooledConnection.java |    0
 .../org/apache/xalan/lib/sql/QueryParameter.java   |    0
 .../org/apache/xalan/lib/sql/SQLDocument.java      |    0
 .../org/apache/xalan/lib/sql/SQLErrorDocument.java |    0
 .../org/apache/xalan/lib/sql/SQLQueryParser.java   |    0
 .../org/apache/xalan/lib/sql/SecuritySupport.java  |    0
 .../org/apache/xalan/lib/sql/XConnection.java      |    0
 .../java}/org/apache/xalan/lib/sql/package.html    |    0
 .../xalan/processor/ProcessorAttributeSet.java     |    0
 .../xalan/processor/ProcessorCharacters.java       |    0
 .../xalan/processor/ProcessorDecimalFormat.java    |    0
 .../xalan/processor/ProcessorExsltFuncResult.java  |    0
 .../xalan/processor/ProcessorExsltFunction.java    |  194 ++
 .../xalan/processor/ProcessorGlobalParamDecl.java  |    0
 .../processor/ProcessorGlobalVariableDecl.java     |    0
 .../apache/xalan/processor/ProcessorImport.java    |    0
 .../apache/xalan/processor/ProcessorInclude.java   |    0
 .../org/apache/xalan/processor/ProcessorKey.java   |  156 +
 .../org/apache/xalan/processor/ProcessorLRE.java   |  370 ++
 .../xalan/processor/ProcessorNamespaceAlias.java   |   97 +
 .../xalan/processor/ProcessorOutputElem.java       |    0
 .../xalan/processor/ProcessorPreserveSpace.java    |   78 +
 .../xalan/processor/ProcessorStripSpace.java       |   78 +
 .../xalan/processor/ProcessorStylesheetDoc.java    |    0
 .../processor/ProcessorStylesheetElement.java      |  148 +
 .../apache/xalan/processor/ProcessorTemplate.java  |    0
 .../xalan/processor/ProcessorTemplateElem.java     |    0
 .../org/apache/xalan/processor/ProcessorText.java  |    0
 .../apache/xalan/processor/ProcessorUnknown.java   |    0
 .../apache/xalan/processor/StylesheetHandler.java  | 1725 ++++++++++
 .../xalan/processor/TransformerFactoryImpl.java    | 1038 ++++++
 .../xalan/processor/WhitespaceInfoPaths.java       |    0
 .../apache/xalan/processor/XSLProcessorVersion.src |    0
 .../apache/xalan/processor/XSLTAttributeDef.java   |    0
 .../org/apache/xalan/processor/XSLTElementDef.java |    0
 .../xalan/processor/XSLTElementProcessor.java      |  403 +++
 .../org/apache/xalan/processor/XSLTSchema.java     |    0
 .../java}/org/apache/xalan/processor/package.html  |    0
 .../java}/org/apache/xalan/res/XSLMessages.java    |    0
 .../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    |    0
 .../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    |    0
 .../apache/xalan/res/XSLTErrorResources_tr.java    | 1530 +++++++++
 .../apache/xalan/res/XSLTErrorResources_zh.java    | 1530 +++++++++
 .../apache/xalan/res/XSLTErrorResources_zh_CN.java |    0
 .../apache/xalan/res/XSLTErrorResources_zh_TW.java | 1530 +++++++++
 .../main/java}/org/apache/xalan/res/package.html   |    0
 .../org/apache/xalan/serialize/DOMSerializer.java  |    0
 .../org/apache/xalan/serialize/Serializer.java     |    0
 .../apache/xalan/serialize/SerializerFactory.java  |  159 +
 .../apache/xalan/serialize/SerializerUtils.java    |  277 ++
 .../main/java}/org/apache/xalan/templates/AVT.java |    0
 .../java}/org/apache/xalan/templates/AVTPart.java  |    0
 .../org/apache/xalan/templates/AVTPartSimple.java  |    0
 .../org/apache/xalan/templates/AVTPartXPath.java   |    0
 .../org/apache/xalan/templates/AbsPathChecker.java |    0
 .../org/apache/xalan/templates/Constants.java      |    0
 .../xalan/templates/DecimalFormatProperties.java   |  404 +++
 .../apache/xalan/templates/ElemApplyImport.java    |  117 +
 .../apache/xalan/templates/ElemApplyTemplates.java |    0
 .../org/apache/xalan/templates/ElemAttribute.java  |  276 ++
 .../apache/xalan/templates/ElemAttributeSet.java   |  181 +
 .../apache/xalan/templates/ElemCallTemplate.java   |  374 ++
 .../org/apache/xalan/templates/ElemChoose.java     |  198 ++
 .../org/apache/xalan/templates/ElemComment.java    |  150 +
 .../java/org/apache/xalan/templates/ElemCopy.java  |  147 +
 .../org/apache/xalan/templates/ElemCopyOf.java     |  251 ++
 .../org/apache/xalan/templates/ElemElement.java    |  378 ++
 .../org/apache/xalan/templates/ElemEmpty.java      |    0
 .../xalan/templates/ElemExsltFuncResult.java       |    0
 .../apache/xalan/templates/ElemExsltFunction.java  |    0
 .../apache/xalan/templates/ElemExtensionCall.java  |    0
 .../apache/xalan/templates/ElemExtensionDecl.java  |    0
 .../xalan/templates/ElemExtensionScript.java       |    0
 .../org/apache/xalan/templates/ElemFallback.java   |  115 +
 .../org/apache/xalan/templates/ElemForEach.java    |  549 +++
 .../java/org/apache/xalan/templates/ElemIf.java    |  178 +
 .../apache/xalan/templates/ElemLiteralResult.java  |    0
 .../org/apache/xalan/templates/ElemMessage.java    |  130 +
 .../org/apache/xalan/templates/ElemNumber.java     | 2168 ++++++++++++
 .../org/apache/xalan/templates/ElemOtherwise.java  |   57 +
 .../java/org/apache/xalan/templates/ElemPI.java    |  230 ++
 .../java/org/apache/xalan/templates/ElemParam.java |  130 +
 .../java/org/apache/xalan/templates/ElemSort.java  |  349 ++
 .../org/apache/xalan/templates/ElemTemplate.java   |  421 +++
 .../xalan/templates/ElemTemplateElement.java       | 1666 +++++++++
 .../java/org/apache/xalan/templates/ElemText.java  |  148 +
 .../apache/xalan/templates/ElemTextLiteral.java    |  245 ++
 .../org/apache/xalan/templates/ElemUnknown.java    |    0
 .../java}/org/apache/xalan/templates/ElemUse.java  |    0
 .../org/apache/xalan/templates/ElemValueOf.java    |  335 ++
 .../org/apache/xalan/templates/ElemVariable.java   |  538 +++
 .../apache/xalan/templates/ElemVariablePsuedo.java |    0
 .../java/org/apache/xalan/templates/ElemWhen.java  |  126 +
 .../org/apache/xalan/templates/ElemWithParam.java  |  265 ++
 .../org/apache/xalan/templates/FuncDocument.java   |    0
 .../org/apache/xalan/templates/FuncFormatNumb.java |    0
 .../java}/org/apache/xalan/templates/FuncKey.java  |    0
 .../org/apache/xalan/templates/KeyDeclaration.java |    0
 .../org/apache/xalan/templates/NamespaceAlias.java |    0
 .../apache/xalan/templates/OutputProperties.java   |    0
 .../xalan/templates/RedundentExprEliminator.java   |    0
 .../org/apache/xalan/templates/Stylesheet.java     | 1516 +++++++++
 .../apache/xalan/templates/StylesheetComposed.java |    0
 .../org/apache/xalan/templates/StylesheetRoot.java |    0
 .../org/apache/xalan/templates/TemplateList.java   |    0
 .../templates/TemplateSubPatternAssociation.java   |    0
 .../apache/xalan/templates/VarNameCollector.java   |    0
 .../org/apache/xalan/templates/WhiteSpaceInfo.java |    0
 .../org/apache/xalan/templates/XMLNSDecl.java      |    0
 .../org/apache/xalan/templates/XSLTVisitable.java  |    0
 .../org/apache/xalan/templates/XSLTVisitor.java    |    0
 .../xalan/templates/XUnresolvedVariable.java       |    0
 .../xalan/templates/XUnresolvedVariableSimple.java |    0
 .../java}/org/apache/xalan/templates/package.html  |    0
 .../org/apache/xalan/trace/EndSelectionEvent.java  |    0
 .../org/apache/xalan/trace/ExtensionEvent.java     |    0
 .../org/apache/xalan/trace/GenerateEvent.java      |    0
 .../org/apache/xalan/trace/PrintTraceListener.java |    0
 .../org/apache/xalan/trace/SelectionEvent.java     |    0
 .../org/apache/xalan/trace/TraceListener.java      |    0
 .../org/apache/xalan/trace/TraceListenerEx.java    |    0
 .../org/apache/xalan/trace/TraceListenerEx2.java   |    0
 .../org/apache/xalan/trace/TraceListenerEx3.java   |    0
 .../java}/org/apache/xalan/trace/TraceManager.java |    0
 .../java}/org/apache/xalan/trace/TracerEvent.java  |    0
 .../main/java}/org/apache/xalan/trace/package.html |    0
 .../xalan/transformer/ClonerToResultTree.java      |    0
 .../org/apache/xalan/transformer/Counter.java      |    0
 .../apache/xalan/transformer/CountersTable.java    |    0
 .../apache/xalan/transformer/DecimalToRoman.java   |    0
 .../org/apache/xalan/transformer/KeyIterator.java  |    0
 .../org/apache/xalan/transformer/KeyManager.java   |    0
 .../apache/xalan/transformer/KeyRefIterator.java   |    0
 .../org/apache/xalan/transformer/KeyTable.java     |    0
 .../java}/org/apache/xalan/transformer/MsgMgr.java |    0
 .../org/apache/xalan/transformer/NodeSortKey.java  |    0
 .../org/apache/xalan/transformer/NodeSorter.java   |    0
 .../xalan/transformer/NumeratorFormatter.java      |    0
 .../org/apache/xalan/transformer/QueuedEvents.java |    0
 .../apache/xalan/transformer/ResultNameSpace.java  |    0
 .../xalan/transformer/SerializerSwitcher.java      |    0
 .../org/apache/xalan/transformer/StackGuard.java   |    0
 .../org/apache/xalan/transformer/TrAXFilter.java   |    0
 .../xalan/transformer/TransformSnapshot.java       |    0
 .../xalan/transformer/TransformSnapshotImpl.java   |    0
 .../apache/xalan/transformer/TransformState.java   |    0
 .../xalan/transformer/TransformerClient.java       |    0
 .../xalan/transformer/TransformerHandlerImpl.java  |    0
 .../xalan/transformer/TransformerIdentityImpl.java |    0
 .../apache/xalan/transformer/TransformerImpl.java  |    0
 .../xalan/transformer/TreeWalker2Result.java       |  156 +
 .../transformer/XSLInfiniteLoopException.java      |    0
 .../apache/xalan/transformer/XalanProperties.java  |    0
 .../xalan/transformer/XalanTransformState.java     |    0
 .../org/apache/xalan/transformer/package.html      |    0
 .../org/apache/xalan/xslt/EnvironmentCheck.java    |    0
 .../java}/org/apache/xalan/xslt/ObjectFactory.java |    0
 .../main/java}/org/apache/xalan/xslt/Process.java  |    0
 .../org/apache/xalan/xslt/SecuritySupport.java     |    0
 .../main/java}/org/apache/xalan/xslt/package.html  |    0
 .../xslt/util/XslTransformErrorLocatorHelper.java  |    0
 .../org/apache/xalan/xsltc/CollatorFactory.java    |    0
 .../src/main/java}/org/apache/xalan/xsltc/DOM.java |    0
 .../java}/org/apache/xalan/xsltc/DOMCache.java     |    0
 .../org/apache/xalan/xsltc/DOMEnhancedForDTM.java  |    0
 .../java}/org/apache/xalan/xsltc/NodeIterator.java |    0
 .../org/apache/xalan/xsltc/ProcessorVersion.java   |    0
 .../java}/org/apache/xalan/xsltc/StripFilter.java  |    0
 .../java}/org/apache/xalan/xsltc/Translet.java     |    0
 .../org/apache/xalan/xsltc/TransletException.java  |    0
 .../org/apache/xalan/xsltc/cmdline/Compile.java    |    0
 .../apache/xalan/xsltc/cmdline/ObjectFactory.java  |    0
 .../xalan/xsltc/cmdline/SecuritySupport.java       |    0
 .../org/apache/xalan/xsltc/cmdline/Transform.java  |    0
 .../apache/xalan/xsltc/cmdline/getopt/GetOpt.java  |    0
 .../xsltc/cmdline/getopt/GetOptsException.java     |    0
 .../cmdline/getopt/IllegalArgumentException.java   |    0
 .../cmdline/getopt/MissingOptArgException.java     |    0
 .../xalan/xsltc/compiler/AbsoluteLocationPath.java |    0
 .../xalan/xsltc/compiler/AbsolutePathPattern.java  |    0
 .../xalan/xsltc/compiler/AlternativePattern.java   |    0
 .../xalan/xsltc/compiler/AncestorPattern.java      |    0
 .../apache/xalan/xsltc/compiler/ApplyImports.java  |    0
 .../xalan/xsltc/compiler/ApplyTemplates.java       |    0
 .../apache/xalan/xsltc/compiler/ArgumentList.java  |    0
 .../org/apache/xalan/xsltc/compiler/Attribute.java |    0
 .../apache/xalan/xsltc/compiler/AttributeSet.java  |    0
 .../xalan/xsltc/compiler/AttributeValue.java       |    0
 .../xsltc/compiler/AttributeValueTemplate.java     |    0
 .../org/apache/xalan/xsltc/compiler/BinOpExpr.java |    0
 .../apache/xalan/xsltc/compiler/BooleanCall.java   |    0
 .../apache/xalan/xsltc/compiler/BooleanExpr.java   |    0
 .../apache/xalan/xsltc/compiler/CallTemplate.java  |    0
 .../org/apache/xalan/xsltc/compiler/CastCall.java  |    0
 .../org/apache/xalan/xsltc/compiler/CastExpr.java  |    0
 .../apache/xalan/xsltc/compiler/CeilingCall.java   |    0
 .../org/apache/xalan/xsltc/compiler/Choose.java    |    0
 .../org/apache/xalan/xsltc/compiler/Closure.java   |    0
 .../org/apache/xalan/xsltc/compiler/Comment.java   |    0
 .../xalan/xsltc/compiler/CompilerException.java    |    0
 .../apache/xalan/xsltc/compiler/ConcatCall.java    |    0
 .../org/apache/xalan/xsltc/compiler/Constants.java |    0
 .../apache/xalan/xsltc/compiler/ContainsCall.java  |    0
 .../org/apache/xalan/xsltc/compiler/Copy.java      |    0
 .../org/apache/xalan/xsltc/compiler/CopyOf.java    |    0
 .../apache/xalan/xsltc/compiler/CurrentCall.java   |    0
 .../xalan/xsltc/compiler/DecimalFormatting.java    |    0
 .../apache/xalan/xsltc/compiler/DocumentCall.java  |    0
 .../xalan/xsltc/compiler/ElementAvailableCall.java |    0
 .../apache/xalan/xsltc/compiler/EqualityExpr.java  |    0
 .../apache/xalan/xsltc/compiler/Expression.java    |    0
 .../org/apache/xalan/xsltc/compiler/Fallback.java  |    0
 .../apache/xalan/xsltc/compiler/FilterExpr.java    |    0
 .../xalan/xsltc/compiler/FilterParentPath.java     |    0
 .../compiler/FilteredAbsoluteLocationPath.java     |    0
 .../org/apache/xalan/xsltc/compiler/FloorCall.java |    0
 .../org/apache/xalan/xsltc/compiler/FlowList.java  |    0
 .../org/apache/xalan/xsltc/compiler/ForEach.java   |    0
 .../xalan/xsltc/compiler/FormatNumberCall.java     |    0
 .../xsltc/compiler/FunctionAvailableCall.java      |    0
 .../apache/xalan/xsltc/compiler/FunctionCall.java  |    0
 .../xalan/xsltc/compiler/GenerateIdCall.java       |    0
 .../apache/xalan/xsltc/compiler/IdKeyPattern.java  |    0
 .../org/apache/xalan/xsltc/compiler/IdPattern.java |    0
 .../java}/org/apache/xalan/xsltc/compiler/If.java  |    0
 .../xalan/xsltc/compiler/IllegalCharException.java |    0
 .../org/apache/xalan/xsltc/compiler/Import.java    |    0
 .../org/apache/xalan/xsltc/compiler/Include.java   |    0
 .../apache/xalan/xsltc/compiler/Instruction.java   |    0
 .../org/apache/xalan/xsltc/compiler/IntExpr.java   |    0
 .../java}/org/apache/xalan/xsltc/compiler/Key.java |    0
 .../org/apache/xalan/xsltc/compiler/KeyCall.java   |    0
 .../apache/xalan/xsltc/compiler/KeyPattern.java    |    0
 .../org/apache/xalan/xsltc/compiler/LangCall.java  |    0
 .../org/apache/xalan/xsltc/compiler/LastCall.java  |    0
 .../xalan/xsltc/compiler/LiteralAttribute.java     |    0
 .../xalan/xsltc/compiler/LiteralElement.java       |    0
 .../apache/xalan/xsltc/compiler/LiteralExpr.java   |    0
 .../apache/xalan/xsltc/compiler/LocalNameCall.java |    0
 .../xalan/xsltc/compiler/LocationPathPattern.java  |    0
 .../apache/xalan/xsltc/compiler/LogicalExpr.java   |    0
 .../org/apache/xalan/xsltc/compiler/Makefile.inc   |    0
 .../org/apache/xalan/xsltc/compiler/Message.java   |    0
 .../org/apache/xalan/xsltc/compiler/Mode.java      |    0
 .../org/apache/xalan/xsltc/compiler/NameBase.java  |    0
 .../org/apache/xalan/xsltc/compiler/NameCall.java  |    0
 .../xalan/xsltc/compiler/NamespaceAlias.java       |    0
 .../xalan/xsltc/compiler/NamespaceUriCall.java     |    0
 .../org/apache/xalan/xsltc/compiler/NodeTest.java  |    0
 .../org/apache/xalan/xsltc/compiler/NotCall.java   |    0
 .../org/apache/xalan/xsltc/compiler/Number.java    |    0
 .../apache/xalan/xsltc/compiler/NumberCall.java    |    0
 .../apache/xalan/xsltc/compiler/ObjectFactory.java |    0
 .../org/apache/xalan/xsltc/compiler/Otherwise.java |    0
 .../org/apache/xalan/xsltc/compiler/Output.java    |    0
 .../org/apache/xalan/xsltc/compiler/Param.java     |    0
 .../apache/xalan/xsltc/compiler/ParameterRef.java  |    0
 .../xalan/xsltc/compiler/ParentLocationPath.java   |    0
 .../apache/xalan/xsltc/compiler/ParentPattern.java |    0
 .../org/apache/xalan/xsltc/compiler/Parser.java    |    0
 .../org/apache/xalan/xsltc/compiler/Pattern.java   |    0
 .../apache/xalan/xsltc/compiler/PositionCall.java  |    0
 .../org/apache/xalan/xsltc/compiler/Predicate.java |    0
 .../xsltc/compiler/ProcessingInstruction.java      |    0
 .../compiler/ProcessingInstructionPattern.java     |    0
 .../org/apache/xalan/xsltc/compiler/QName.java     |    0
 .../org/apache/xalan/xsltc/compiler/RealExpr.java  |    0
 .../xalan/xsltc/compiler/RelationalExpr.java       |    0
 .../xalan/xsltc/compiler/RelativeLocationPath.java |    0
 .../xalan/xsltc/compiler/RelativePathPattern.java  |    0
 .../org/apache/xalan/xsltc/compiler/RoundCall.java |    0
 .../xalan/xsltc/compiler/SecuritySupport.java      |    0
 .../xalan/xsltc/compiler/SimpleAttributeValue.java |    0
 .../org/apache/xalan/xsltc/compiler/Sort.java      |    0
 .../apache/xalan/xsltc/compiler/SourceLoader.java  |    0
 .../xalan/xsltc/compiler/StartsWithCall.java       |    0
 .../org/apache/xalan/xsltc/compiler/Step.java      |    0
 .../apache/xalan/xsltc/compiler/StepPattern.java   |    0
 .../apache/xalan/xsltc/compiler/StringCall.java    |    0
 .../xalan/xsltc/compiler/StringLengthCall.java     |    0
 .../apache/xalan/xsltc/compiler/Stylesheet.java    |    0
 .../apache/xalan/xsltc/compiler/SymbolTable.java   |    0
 .../xalan/xsltc/compiler/SyntaxTreeNode.java       |    0
 .../org/apache/xalan/xsltc/compiler/Template.java  |    0
 .../org/apache/xalan/xsltc/compiler/TestSeq.java   |    0
 .../org/apache/xalan/xsltc/compiler/Text.java      |    0
 .../xalan/xsltc/compiler/TopLevelElement.java      |    0
 .../xalan/xsltc/compiler/TransletOutput.java       |    0
 .../apache/xalan/xsltc/compiler/UnaryOpExpr.java   |    0
 .../apache/xalan/xsltc/compiler/UnionPathExpr.java |    0
 .../xsltc/compiler/UnparsedEntityUriCall.java      |    0
 .../apache/xalan/xsltc/compiler/UnresolvedRef.java |    0
 .../xalan/xsltc/compiler/UnsupportedElement.java   |    0
 .../xalan/xsltc/compiler/UseAttributeSets.java     |    0
 .../org/apache/xalan/xsltc/compiler/ValueOf.java   |    0
 .../org/apache/xalan/xsltc/compiler/Variable.java  |    0
 .../apache/xalan/xsltc/compiler/VariableBase.java  |    0
 .../apache/xalan/xsltc/compiler/VariableRef.java   |    0
 .../xalan/xsltc/compiler/VariableRefBase.java      |    0
 .../org/apache/xalan/xsltc/compiler/When.java      |    0
 .../apache/xalan/xsltc/compiler/Whitespace.java    |    0
 .../org/apache/xalan/xsltc/compiler/WithParam.java |    0
 .../apache/xalan/xsltc/compiler/XPathParser.java   | 3174 +++++++++++++++++
 .../org/apache/xalan/xsltc/compiler/XSLTC.java     |    0
 .../apache/xalan/xsltc/compiler/XslAttribute.java  |    0
 .../apache/xalan/xsltc/compiler/XslElement.java    |    0
 .../java/org/apache/xalan/xsltc/compiler/sym.java  |  124 +
 .../compiler/util/AttributeSetMethodGenerator.java |    0
 .../xalan/xsltc/compiler/util/BooleanType.java     |    0
 .../xalan/xsltc/compiler/util/ClassGenerator.java  |    0
 .../xsltc/compiler/util/CompareGenerator.java      |    0
 .../xalan/xsltc/compiler/util/ErrorMessages.java   |    0
 .../xsltc/compiler/util/ErrorMessages_ca.java      |    0
 .../xsltc/compiler/util/ErrorMessages_cs.java      |    0
 .../xsltc/compiler/util/ErrorMessages_de.java      |    0
 .../xsltc/compiler/util/ErrorMessages_es.java      |    0
 .../xsltc/compiler/util/ErrorMessages_fr.java      |    0
 .../xsltc/compiler/util/ErrorMessages_hu.java      |    0
 .../xsltc/compiler/util/ErrorMessages_it.java      |    0
 .../xsltc/compiler/util/ErrorMessages_ja.java      |    0
 .../xsltc/compiler/util/ErrorMessages_ko.java      |    0
 .../xsltc/compiler/util/ErrorMessages_no.java      |    0
 .../xsltc/compiler/util/ErrorMessages_pl.java      |    0
 .../xsltc/compiler/util/ErrorMessages_pt_BR.java   |    0
 .../xsltc/compiler/util/ErrorMessages_ru.java      |    0
 .../xsltc/compiler/util/ErrorMessages_sk.java      |    0
 .../xsltc/compiler/util/ErrorMessages_sl.java      |    0
 .../xsltc/compiler/util/ErrorMessages_tr.java      |    0
 .../xsltc/compiler/util/ErrorMessages_zh.java      |    0
 .../xsltc/compiler/util/ErrorMessages_zh_TW.java   |    0
 .../apache/xalan/xsltc/compiler/util/ErrorMsg.java |    0
 .../xalan/xsltc/compiler/util/FilterGenerator.java |    0
 .../apache/xalan/xsltc/compiler/util/IntType.java  |    0
 .../xalan/xsltc/compiler/util/InternalError.java   |    0
 .../xsltc/compiler/util/MarkerInstruction.java     |    0
 .../xalan/xsltc/compiler/util/MatchGenerator.java  |    0
 .../xalan/xsltc/compiler/util/MethodGenerator.java |    0
 .../xalan/xsltc/compiler/util/MethodType.java      |    0
 .../xalan/xsltc/compiler/util/MultiHashtable.java  |    0
 .../xsltc/compiler/util/NamedMethodGenerator.java  |    0
 .../xsltc/compiler/util/NodeCounterGenerator.java  |    0
 .../xalan/xsltc/compiler/util/NodeSetType.java     |    0
 .../compiler/util/NodeSortRecordFactGenerator.java |    0
 .../compiler/util/NodeSortRecordGenerator.java     |    0
 .../apache/xalan/xsltc/compiler/util/NodeType.java |    0
 .../xalan/xsltc/compiler/util/NumberType.java      |    0
 .../xalan/xsltc/compiler/util/ObjectFactory.java   |    0
 .../xalan/xsltc/compiler/util/ObjectType.java      |    0
 .../xsltc/compiler/util/OutlineableChunkEnd.java   |    0
 .../xsltc/compiler/util/OutlineableChunkStart.java |    0
 .../apache/xalan/xsltc/compiler/util/RealType.java |    0
 .../xalan/xsltc/compiler/util/ReferenceType.java   |    0
 .../xalan/xsltc/compiler/util/ResultTreeType.java  |    0
 .../xsltc/compiler/util/RtMethodGenerator.java     |    0
 .../xalan/xsltc/compiler/util/SecuritySupport.java |    0
 .../xalan/xsltc/compiler/util/SlotAllocator.java   |    0
 .../xalan/xsltc/compiler/util/StringStack.java     |    0
 .../xalan/xsltc/compiler/util/StringType.java      |    0
 .../xalan/xsltc/compiler/util/TestGenerator.java   |    0
 .../org/apache/xalan/xsltc/compiler/util/Type.java |    0
 .../xalan/xsltc/compiler/util/TypeCheckError.java  |    0
 .../org/apache/xalan/xsltc/compiler/util/Util.java |    0
 .../apache/xalan/xsltc/compiler/util/VoidType.java |    0
 .../org/apache/xalan/xsltc/compiler/xpath.cup      |    0
 .../java/org/apache/xalan/xsltc/compiler/xpath.lex |  275 ++
 .../apache/xalan/xsltc/dom/AbsoluteIterator.java   |    0
 .../xalan/xsltc/dom/AdaptiveResultTreeImpl.java    |    0
 .../org/apache/xalan/xsltc/dom/AnyNodeCounter.java |    0
 .../xalan/xsltc/dom/ArrayNodeListIterator.java     |    0
 .../java}/org/apache/xalan/xsltc/dom/BitArray.java |    0
 .../xalan/xsltc/dom/CachedNodeListIterator.java    |    0
 .../xalan/xsltc/dom/ClonedNodeListIterator.java    |    0
 .../xalan/xsltc/dom/CollatorFactoryBase.java       |    0
 .../xalan/xsltc/dom/CurrentNodeListFilter.java     |    0
 .../xalan/xsltc/dom/CurrentNodeListIterator.java   |    0
 .../org/apache/xalan/xsltc/dom/DOMAdapter.java     |    0
 .../org/apache/xalan/xsltc/dom/DOMBuilder.java     |    0
 .../org/apache/xalan/xsltc/dom/DOMWSFilter.java    |    0
 .../org/apache/xalan/xsltc/dom/DocumentCache.java  |    0
 .../apache/xalan/xsltc/dom/DupFilterIterator.java  |    0
 .../org/apache/xalan/xsltc/dom/EmptyFilter.java    |    0
 .../org/apache/xalan/xsltc/dom/ExtendedSAX.java    |    0
 .../java}/org/apache/xalan/xsltc/dom/Filter.java   |    0
 .../org/apache/xalan/xsltc/dom/FilterIterator.java |    0
 .../xalan/xsltc/dom/FilteredStepIterator.java      |    0
 .../xalan/xsltc/dom/ForwardPositionIterator.java   |    0
 .../java}/org/apache/xalan/xsltc/dom/KeyIndex.java |    0
 .../org/apache/xalan/xsltc/dom/LoadDocument.java   |    0
 .../apache/xalan/xsltc/dom/MatchingIterator.java   |    0
 .../java}/org/apache/xalan/xsltc/dom/MultiDOM.java |    0
 .../xsltc/dom/MultiValuedNodeHeapIterator.java     |    0
 .../xalan/xsltc/dom/MultipleNodeCounter.java       |    0
 .../org/apache/xalan/xsltc/dom/NodeCounter.java    |    0
 .../apache/xalan/xsltc/dom/NodeIteratorBase.java   |    0
 .../org/apache/xalan/xsltc/dom/NodeSortRecord.java |    0
 .../xalan/xsltc/dom/NodeSortRecordFactory.java     |    0
 .../org/apache/xalan/xsltc/dom/NthIterator.java    |    0
 .../org/apache/xalan/xsltc/dom/ObjectFactory.java  |    0
 .../java}/org/apache/xalan/xsltc/dom/SAXImpl.java  |    0
 .../apache/xalan/xsltc/dom/SecuritySupport.java    |    0
 .../xalan/xsltc/dom/SimpleResultTreeImpl.java      |    0
 .../apache/xalan/xsltc/dom/SingleNodeCounter.java  |    0
 .../apache/xalan/xsltc/dom/SingletonIterator.java  |    0
 .../org/apache/xalan/xsltc/dom/SortSettings.java   |    0
 .../apache/xalan/xsltc/dom/SortingIterator.java    |    0
 .../org/apache/xalan/xsltc/dom/StepIterator.java   |    0
 .../xalan/xsltc/dom/StripWhitespaceFilter.java     |    0
 .../org/apache/xalan/xsltc/dom/UnionIterator.java  |    0
 .../apache/xalan/xsltc/dom/XSLTCDTMManager.java    |    0
 .../xsltc/javax.xml.transform.TransformerFactory   |    0
 .../xalan/xsltc/runtime/AbstractTranslet.java      |    0
 .../apache/xalan/xsltc/runtime/AttributeList.java  |    0
 .../org/apache/xalan/xsltc/runtime/Attributes.java |    0
 .../apache/xalan/xsltc/runtime/BasisLibrary.java   |    0
 .../org/apache/xalan/xsltc/runtime/Constants.java  |    0
 .../apache/xalan/xsltc/runtime/ErrorMessages.java  |    0
 .../xalan/xsltc/runtime/ErrorMessages_ca.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_cs.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_de.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_es.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_fr.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_hu.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_it.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_ja.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_ko.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_no.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_pl.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_pt_BR.java   |    0
 .../xalan/xsltc/runtime/ErrorMessages_ru.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_sk.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_sl.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_tr.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_zh.java      |    0
 .../xalan/xsltc/runtime/ErrorMessages_zh_TW.java   |    0
 .../org/apache/xalan/xsltc/runtime/Hashtable.java  |    0
 .../xalan/xsltc/runtime/InternalRuntimeError.java  |    0
 .../apache/xalan/xsltc/runtime/MessageHandler.java |    0
 .../java}/org/apache/xalan/xsltc/runtime/Node.java |    0
 .../apache/xalan/xsltc/runtime/ObjectFactory.java  |    0
 .../org/apache/xalan/xsltc/runtime/Operators.java  |    0
 .../org/apache/xalan/xsltc/runtime/Parameter.java  |    0
 .../xalan/xsltc/runtime/SecuritySupport.java       |    0
 .../xalan/xsltc/runtime/StringValueHandler.java    |    0
 .../xalan/xsltc/runtime/output/OutputBuffer.java   |    0
 .../xsltc/runtime/output/StringOutputBuffer.java   |    0
 .../output/TransletOutputHandlerFactory.java       |    0
 .../xsltc/runtime/output/WriterOutputBuffer.java   |    0
 .../java}/org/apache/xalan/xsltc/trax/DOM2SAX.java |    0
 .../java}/org/apache/xalan/xsltc/trax/DOM2TO.java  |    0
 .../org/apache/xalan/xsltc/trax/ObjectFactory.java |    0
 .../apache/xalan/xsltc/trax/OutputSettings.java    |    0
 .../java}/org/apache/xalan/xsltc/trax/SAX2DOM.java |    0
 .../apache/xalan/xsltc/trax/SecuritySupport.java   |    0
 .../xsltc/trax/SmartTransformerFactoryImpl.java    |    0
 .../xalan/xsltc/trax/TemplatesHandlerImpl.java     |    0
 .../org/apache/xalan/xsltc/trax/TemplatesImpl.java |    0
 .../org/apache/xalan/xsltc/trax/TrAXFilter.java    |    0
 .../xalan/xsltc/trax/TransformerFactoryImpl.java   |    0
 .../xalan/xsltc/trax/TransformerHandlerImpl.java   |    0
 .../apache/xalan/xsltc/trax/TransformerImpl.java   |    0
 .../java}/org/apache/xalan/xsltc/trax/Util.java    |    0
 .../org/apache/xalan/xsltc/trax/XSLTCSource.java   |    0
 .../org/apache/xalan/xsltc/util/IntegerArray.java  |    0
 .../src/main/java}/org/apache/xml/dtm/Axis.java    |    0
 .../src/main/java}/org/apache/xml/dtm/DTM.java     |    0
 .../java}/org/apache/xml/dtm/DTMAxisIterator.java  |    0
 .../java}/org/apache/xml/dtm/DTMAxisTraverser.java |    0
 .../apache/xml/dtm/DTMConfigurationException.java  |    0
 .../java}/org/apache/xml/dtm/DTMDOMException.java  |    0
 .../java}/org/apache/xml/dtm/DTMException.java     |    0
 .../main/java}/org/apache/xml/dtm/DTMFilter.java   |    0
 .../main/java}/org/apache/xml/dtm/DTMIterator.java |    0
 .../main/java}/org/apache/xml/dtm/DTMManager.java  |    0
 .../main/java}/org/apache/xml/dtm/DTMWSFilter.java |    0
 .../java}/org/apache/xml/dtm/ObjectFactory.java    |    0
 .../java}/org/apache/xml/dtm/SecuritySupport.java  |    0
 .../org/apache/xml/dtm/ref/ChunkedIntArray.java    |    0
 .../org/apache/xml/dtm/ref/CoroutineManager.java   |    0
 .../org/apache/xml/dtm/ref/CoroutineParser.java    |    0
 .../org/apache/xml/dtm/ref/CustomStringPool.java   |    0
 .../apache/xml/dtm/ref/DTMAxisIterNodeList.java    |    0
 .../apache/xml/dtm/ref/DTMAxisIteratorBase.java    |    0
 .../apache/xml/dtm/ref/DTMChildIterNodeList.java   |    0
 .../org/apache/xml/dtm/ref/DTMDefaultBase.java     |    0
 .../xml/dtm/ref/DTMDefaultBaseIterators.java       |    0
 .../xml/dtm/ref/DTMDefaultBaseTraversers.java      |    0
 .../org/apache/xml/dtm/ref/DTMDocumentImpl.java    |    0
 .../org/apache/xml/dtm/ref/DTMManagerDefault.java  |    0
 .../org/apache/xml/dtm/ref/DTMNamedNodeMap.java    |    0
 .../org/apache/xml/dtm/ref/DTMNodeIterator.java    |    0
 .../java}/org/apache/xml/dtm/ref/DTMNodeList.java  |    0
 .../org/apache/xml/dtm/ref/DTMNodeListBase.java    |    0
 .../java}/org/apache/xml/dtm/ref/DTMNodeProxy.java |    0
 .../org/apache/xml/dtm/ref/DTMSafeStringPool.java  |    0
 .../org/apache/xml/dtm/ref/DTMStringPool.java      |    0
 .../org/apache/xml/dtm/ref/DTMTreeWalker.java      |    0
 .../org/apache/xml/dtm/ref/EmptyIterator.java      |    0
 .../org/apache/xml/dtm/ref/ExpandedNameTable.java  |    0
 .../java}/org/apache/xml/dtm/ref/ExtendedType.java |    0
 .../apache/xml/dtm/ref/IncrementalSAXSource.java   |    0
 .../xml/dtm/ref/IncrementalSAXSource_Filter.java   |    0
 .../xml/dtm/ref/IncrementalSAXSource_Xerces.java   |    0
 .../java}/org/apache/xml/dtm/ref/NodeLocator.java  |    0
 .../org/apache/xml/dtm/ref/ObjectFactory.java      |    0
 .../org/apache/xml/dtm/ref/SecuritySupport.java    |    0
 .../org/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java    |    0
 .../DOM2DTMdefaultNamespaceDeclarationNode.java    |    0
 .../org/apache/xml/dtm/ref/sax2dtm/SAX2DTM.java    |    0
 .../org/apache/xml/dtm/ref/sax2dtm/SAX2DTM2.java   |    0
 .../org/apache/xml/dtm/ref/sax2dtm/SAX2RTFDTM.java |    0
 .../org/apache/xml/res/XMLErrorResources.java      |    0
 .../org/apache/xml/res/XMLErrorResources_ca.java   |    0
 .../org/apache/xml/res/XMLErrorResources_cs.java   |    0
 .../org/apache/xml/res/XMLErrorResources_de.java   |    0
 .../org/apache/xml/res/XMLErrorResources_en.java   |    0
 .../org/apache/xml/res/XMLErrorResources_es.java   |    0
 .../org/apache/xml/res/XMLErrorResources_fr.java   |    0
 .../org/apache/xml/res/XMLErrorResources_hu.java   |    0
 .../org/apache/xml/res/XMLErrorResources_it.java   |    0
 .../org/apache/xml/res/XMLErrorResources_ja.java   |    0
 .../org/apache/xml/res/XMLErrorResources_ko.java   |    0
 .../org/apache/xml/res/XMLErrorResources_pl.java   |    0
 .../apache/xml/res/XMLErrorResources_pt_BR.java    |    0
 .../org/apache/xml/res/XMLErrorResources_ru.java   |    0
 .../org/apache/xml/res/XMLErrorResources_sk.java   |    0
 .../org/apache/xml/res/XMLErrorResources_sl.java   |    0
 .../org/apache/xml/res/XMLErrorResources_sv.java   |    0
 .../org/apache/xml/res/XMLErrorResources_tr.java   |    0
 .../org/apache/xml/res/XMLErrorResources_zh.java   |    0
 .../apache/xml/res/XMLErrorResources_zh_TW.java    |    0
 .../main/java/org/apache/xml/res/XMLMessages.java  |  214 ++
 .../main/java}/org/apache/xml/utils/AttList.java   |    0
 .../main/java/org/apache/xml/utils/BoolStack.java  |  202 ++
 .../main/java}/org/apache/xml/utils/Constants.java |    0
 .../java}/org/apache/xml/utils/DOM2Helper.java     |    0
 .../java}/org/apache/xml/utils/DOMBuilder.java     |    0
 .../main/java}/org/apache/xml/utils/DOMHelper.java |    0
 .../main/java}/org/apache/xml/utils/DOMOrder.java  |    0
 .../org/apache/xml/utils/DefaultErrorHandler.java  |    0
 .../main/java}/org/apache/xml/utils/ElemDesc.java  |    0
 .../org/apache/xml/utils/FastStringBuffer.java     |    0
 .../java}/org/apache/xml/utils/Hashtree2Node.java  |    0
 .../main/java/org/apache/xml/utils/IntStack.java   |  210 ++
 .../main/java}/org/apache/xml/utils/IntVector.java |    0
 .../org/apache/xml/utils/ListingErrorHandler.java  |    0
 .../java}/org/apache/xml/utils/LocaleUtility.java  |    0
 .../org/apache/xml/utils/MutableAttrListImpl.java  |    0
 .../main/java}/org/apache/xml/utils/NSInfo.java    |    0
 .../main/java}/org/apache/xml/utils/NameSpace.java |    0
 .../org/apache/xml/utils/NamespaceSupport2.java    |    0
 .../java}/org/apache/xml/utils/NodeConsumer.java   |    0
 .../java}/org/apache/xml/utils/NodeVector.java     |    0
 .../java}/org/apache/xml/utils/ObjectFactory.java  |    0
 .../java}/org/apache/xml/utils/ObjectPool.java     |    0
 .../java/org/apache/xml/utils/ObjectStack.java     |  214 ++
 .../java}/org/apache/xml/utils/ObjectVector.java   |    0
 .../java}/org/apache/xml/utils/PrefixResolver.java |    0
 .../apache/xml/utils/PrefixResolverDefault.java    |    0
 .../src/main/java}/org/apache/xml/utils/QName.java |    0
 .../org/apache/xml/utils/RawCharacterHandler.java  |    0
 .../org/apache/xml/utils/SAXSourceLocator.java     |    0
 .../org/apache/xml/utils/SecuritySupport.java      |    0
 .../apache/xml/utils/SerializableLocatorImpl.java  |    0
 .../org/apache/xml/utils/StopParseException.java   |    0
 .../org/apache/xml/utils/StringBufferPool.java     |    0
 .../org/apache/xml/utils/StringComparable.java     |    0
 .../org/apache/xml/utils/StringToIntTable.java     |    0
 .../org/apache/xml/utils/StringToStringTable.java  |    0
 .../xml/utils/StringToStringTableVector.java       |    0
 .../java}/org/apache/xml/utils/StringVector.java   |    0
 .../org/apache/xml/utils/StylesheetPIHandler.java  |    0
 .../apache/xml/utils/SuballocatedByteVector.java   |    0
 .../apache/xml/utils/SuballocatedIntVector.java    |    0
 .../org/apache/xml/utils/SystemIDResolver.java     |    0
 .../apache/xml/utils/ThreadControllerWrapper.java  |    0
 .../java}/org/apache/xml/utils/TreeWalker.java     |    0
 .../src/main/java}/org/apache/xml/utils/URI.java   |    0
 .../main/java/org/apache/xml/utils/UnImplNode.java | 1992 +++++++++++
 .../apache/xml/utils/WrappedRuntimeException.java  |    0
 .../org/apache/xml/utils/WrongParserException.java |    0
 .../main/java}/org/apache/xml/utils/XML11Char.java |    0
 .../main/java}/org/apache/xml/utils/XMLChar.java   |    0
 .../apache/xml/utils/XMLCharacterRecognizer.java   |    0
 .../org/apache/xml/utils/XMLReaderManager.java     |    0
 .../main/java}/org/apache/xml/utils/XMLString.java |    0
 .../org/apache/xml/utils/XMLStringDefault.java     |    0
 .../org/apache/xml/utils/XMLStringFactory.java     |    0
 .../apache/xml/utils/XMLStringFactoryDefault.java  |    0
 .../main/java}/org/apache/xml/utils/package.html   |    0
 .../org/apache/xml/utils/res/CharArrayWrapper.java |    0
 .../org/apache/xml/utils/res/IntArrayWrapper.java  |    0
 .../org/apache/xml/utils/res/LongArrayWrapper.java |    0
 .../apache/xml/utils/res/StringArrayWrapper.java   |    0
 .../org/apache/xml/utils/res/XResourceBundle.java  |    0
 .../apache/xml/utils/res/XResourceBundleBase.java  |    0
 .../org/apache/xml/utils/res/XResources_cy.java    |    0
 .../org/apache/xml/utils/res/XResources_de.java    |    0
 .../org/apache/xml/utils/res/XResources_el.java    |    0
 .../org/apache/xml/utils/res/XResources_en.java    |    0
 .../org/apache/xml/utils/res/XResources_es.java    |    0
 .../org/apache/xml/utils/res/XResources_fr.java    |    0
 .../org/apache/xml/utils/res/XResources_he.java    |    0
 .../org/apache/xml/utils/res/XResources_hy.java    |    0
 .../org/apache/xml/utils/res/XResources_it.java    |    0
 .../apache/xml/utils/res/XResources_ja_JP_A.java   |    0
 .../apache/xml/utils/res/XResources_ja_JP_HA.java  |    0
 .../apache/xml/utils/res/XResources_ja_JP_HI.java  |    0
 .../apache/xml/utils/res/XResources_ja_JP_I.java   |    0
 .../org/apache/xml/utils/res/XResources_ka.java    |    0
 .../org/apache/xml/utils/res/XResources_ko.java    |    0
 .../org/apache/xml/utils/res/XResources_sv.java    |    0
 .../org/apache/xml/utils/res/XResources_zh_CN.java |    0
 .../org/apache/xml/utils/res/XResources_zh_TW.java |    0
 .../src/main/java}/org/apache/xpath/Arg.java       |    0
 .../java}/org/apache/xpath/CachedXPathAPI.java     |    0
 .../main/java}/org/apache/xpath/Expression.java    |    0
 .../main/java/org/apache/xpath/ExpressionNode.java |   60 +
 .../java}/org/apache/xpath/ExpressionOwner.java    |    0
 .../java}/org/apache/xpath/ExtensionsProvider.java |    0
 .../main/java}/org/apache/xpath/FoundIndex.java    |    0
 .../src/main/java}/org/apache/xpath/NodeSet.java   |    0
 .../main/java}/org/apache/xpath/NodeSetDTM.java    |    0
 .../main/java}/org/apache/xpath/SourceTree.java    |    0
 .../java}/org/apache/xpath/SourceTreeManager.java  |    0
 .../main/java}/org/apache/xpath/VariableStack.java |    0
 .../xpath/WhitespaceStrippingElementMatcher.java   |   54 +
 .../src/main/java}/org/apache/xpath/XPath.java     |    0
 .../src/main/java}/org/apache/xpath/XPathAPI.java  |    0
 .../main/java}/org/apache/xpath/XPathContext.java  |    0
 .../java}/org/apache/xpath/XPathException.java     |    0
 .../main/java}/org/apache/xpath/XPathFactory.java  |    0
 .../org/apache/xpath/XPathProcessorException.java  |    0
 .../java}/org/apache/xpath/XPathVisitable.java     |    0
 .../main/java}/org/apache/xpath/XPathVisitor.java  |    0
 .../org/apache/xpath/axes/AttributeIterator.java   |    0
 .../java}/org/apache/xpath/axes/AxesWalker.java    |    0
 .../org/apache/xpath/axes/BasicTestIterator.java   |    0
 .../java}/org/apache/xpath/axes/ChildIterator.java |    0
 .../org/apache/xpath/axes/ChildTestIterator.java   |    0
 .../org/apache/xpath/axes/ContextNodeList.java     |    0
 .../org/apache/xpath/axes/DescendantIterator.java  |    0
 .../org/apache/xpath/axes/FilterExprIterator.java  |    0
 .../xpath/axes/FilterExprIteratorSimple.java       |    0
 .../org/apache/xpath/axes/FilterExprWalker.java    |    0
 .../xpath/axes/HasPositionalPredChecker.java       |    0
 .../java}/org/apache/xpath/axes/IteratorPool.java  |    0
 .../org/apache/xpath/axes/LocPathIterator.java     | 1033 ++++++
 .../apache/xpath/axes/MatchPatternIterator.java    |    0
 .../java}/org/apache/xpath/axes/NodeSequence.java  |    0
 .../org/apache/xpath/axes/OneStepIterator.java     |    0
 .../apache/xpath/axes/OneStepIteratorForward.java  |  172 +
 .../java}/org/apache/xpath/axes/PathComponent.java |    0
 .../org/apache/xpath/axes/PredicatedNodeTest.java  |    0
 .../java}/org/apache/xpath/axes/RTFIterator.java   |    0
 .../org/apache/xpath/axes/ReverseAxesWalker.java   |    0
 .../apache/xpath/axes/SelfIteratorNoPredicate.java |    0
 .../org/apache/xpath/axes/SubContextList.java      |    0
 .../org/apache/xpath/axes/UnionChildIterator.java  |    0
 .../org/apache/xpath/axes/UnionPathIterator.java   |    0
 .../java}/org/apache/xpath/axes/WalkerFactory.java |    0
 .../org/apache/xpath/axes/WalkingIterator.java     |    0
 .../apache/xpath/axes/WalkingIteratorSorted.java   |    0
 .../main/java}/org/apache/xpath/axes/package.html  |    0
 .../java}/org/apache/xpath/compiler/Compiler.java  |    0
 .../org/apache/xpath/compiler/FunctionTable.java   |    0
 .../java}/org/apache/xpath/compiler/Keywords.java  |    0
 .../java}/org/apache/xpath/compiler/Lexer.java     |    0
 .../java}/org/apache/xpath/compiler/OpCodes.java   |    0
 .../java}/org/apache/xpath/compiler/OpMap.java     |    0
 .../org/apache/xpath/compiler/OpMapVector.java     |    0
 .../org/apache/xpath/compiler/PsuedoNames.java     |    0
 .../org/apache/xpath/compiler/XPathDumper.java     |    0
 .../org/apache/xpath/compiler/XPathParser.java     |    0
 .../java}/org/apache/xpath/compiler/package.html   |    0
 .../apache/xpath/domapi/XPathEvaluatorImpl.java    |    0
 .../apache/xpath/domapi/XPathExpressionImpl.java   |    0
 .../apache/xpath/domapi/XPathNSResolverImpl.java   |    0
 .../apache/xpath/domapi/XPathNamespaceImpl.java    |    0
 .../org/apache/xpath/domapi/XPathResultImpl.java   |    0
 .../xpath/domapi/XPathStylesheetDOM3Exception.java |    0
 .../java}/org/apache/xpath/domapi/package.html     |    0
 .../org/apache/xpath/functions/FuncBoolean.java    |    0
 .../org/apache/xpath/functions/FuncCeiling.java    |    0
 .../org/apache/xpath/functions/FuncConcat.java     |    0
 .../org/apache/xpath/functions/FuncContains.java   |    0
 .../org/apache/xpath/functions/FuncCount.java      |    0
 .../org/apache/xpath/functions/FuncCurrent.java    |    0
 .../apache/xpath/functions/FuncDoclocation.java    |    0
 .../xpath/functions/FuncExtElementAvailable.java   |    0
 .../apache/xpath/functions/FuncExtFunction.java    |    0
 .../xpath/functions/FuncExtFunctionAvailable.java  |    0
 .../org/apache/xpath/functions/FuncFalse.java      |    0
 .../org/apache/xpath/functions/FuncFloor.java      |    0
 .../org/apache/xpath/functions/FuncGenerateId.java |    0
 .../java}/org/apache/xpath/functions/FuncId.java   |    0
 .../java}/org/apache/xpath/functions/FuncLang.java |    0
 .../java}/org/apache/xpath/functions/FuncLast.java |    0
 .../org/apache/xpath/functions/FuncLocalPart.java  |    0
 .../org/apache/xpath/functions/FuncNamespace.java  |    0
 .../apache/xpath/functions/FuncNormalizeSpace.java |    0
 .../java}/org/apache/xpath/functions/FuncNot.java  |    0
 .../org/apache/xpath/functions/FuncNumber.java     |    0
 .../org/apache/xpath/functions/FuncPosition.java   |    0
 .../org/apache/xpath/functions/FuncQname.java      |    0
 .../org/apache/xpath/functions/FuncRound.java      |    0
 .../org/apache/xpath/functions/FuncStartsWith.java |    0
 .../org/apache/xpath/functions/FuncString.java     |    0
 .../apache/xpath/functions/FuncStringLength.java   |    0
 .../org/apache/xpath/functions/FuncSubstring.java  |    0
 .../apache/xpath/functions/FuncSubstringAfter.java |    0
 .../xpath/functions/FuncSubstringBefore.java       |    0
 .../java}/org/apache/xpath/functions/FuncSum.java  |    0
 .../apache/xpath/functions/FuncSystemProperty.java |    0
 .../org/apache/xpath/functions/FuncTranslate.java  |    0
 .../java}/org/apache/xpath/functions/FuncTrue.java |    0
 .../xpath/functions/FuncUnparsedEntityURI.java     |    0
 .../java}/org/apache/xpath/functions/Function.java |    0
 .../org/apache/xpath/functions/Function2Args.java  |    0
 .../org/apache/xpath/functions/Function3Args.java  |    0
 .../apache/xpath/functions/FunctionDef1Arg.java    |    0
 .../apache/xpath/functions/FunctionMultiArgs.java  |    0
 .../org/apache/xpath/functions/FunctionOneArg.java |    0
 .../org/apache/xpath/functions/ObjectFactory.java  |    0
 .../apache/xpath/functions/SecuritySupport.java    |    0
 .../xpath/functions/WrongNumberArgsException.java  |    0
 .../java}/org/apache/xpath/functions/package.html  |    0
 .../apache/xpath/jaxp/JAXPExtensionsProvider.java  |    0
 .../org/apache/xpath/jaxp/JAXPPrefixResolver.java  |    0
 .../org/apache/xpath/jaxp/JAXPVariableStack.java   |    0
 .../org/apache/xpath/jaxp/XPathExpressionImpl.java |    0
 .../org/apache/xpath/jaxp/XPathFactoryImpl.java    |    0
 .../java}/org/apache/xpath/jaxp/XPathImpl.java     |    0
 .../org/apache/xpath/objects/DTMXRTreeFrag.java    |    0
 .../java}/org/apache/xpath/objects/XBoolean.java   |    0
 .../org/apache/xpath/objects/XBooleanStatic.java   |    0
 .../apache/xpath/objects/XMLStringFactoryImpl.java |    0
 .../java}/org/apache/xpath/objects/XNodeSet.java   |    0
 .../org/apache/xpath/objects/XNodeSetForDOM.java   |    0
 .../main/java}/org/apache/xpath/objects/XNull.java |    0
 .../java}/org/apache/xpath/objects/XNumber.java    |    0
 .../java}/org/apache/xpath/objects/XObject.java    |    0
 .../org/apache/xpath/objects/XObjectFactory.java   |    0
 .../java}/org/apache/xpath/objects/XRTreeFrag.java |    0
 .../xpath/objects/XRTreeFragSelectWrapper.java     |    0
 .../java}/org/apache/xpath/objects/XString.java    |    0
 .../org/apache/xpath/objects/XStringForChars.java  |    0
 .../org/apache/xpath/objects/XStringForFSB.java    |    0
 .../java}/org/apache/xpath/objects/package.html    |    0
 .../java}/org/apache/xpath/operations/And.java     |    0
 .../java}/org/apache/xpath/operations/Bool.java    |    0
 .../java}/org/apache/xpath/operations/Div.java     |    0
 .../java}/org/apache/xpath/operations/Equals.java  |    0
 .../main/java}/org/apache/xpath/operations/Gt.java |    0
 .../java}/org/apache/xpath/operations/Gte.java     |    0
 .../main/java}/org/apache/xpath/operations/Lt.java |    0
 .../java}/org/apache/xpath/operations/Lte.java     |    0
 .../java}/org/apache/xpath/operations/Minus.java   |    0
 .../java}/org/apache/xpath/operations/Mod.java     |    0
 .../java}/org/apache/xpath/operations/Mult.java    |    0
 .../java}/org/apache/xpath/operations/Neg.java     |    0
 .../org/apache/xpath/operations/NotEquals.java     |    0
 .../java}/org/apache/xpath/operations/Number.java  |    0
 .../org/apache/xpath/operations/Operation.java     |    0
 .../main/java}/org/apache/xpath/operations/Or.java |    0
 .../java}/org/apache/xpath/operations/Plus.java    |    0
 .../java}/org/apache/xpath/operations/Quo.java     |    0
 .../java}/org/apache/xpath/operations/String.java  |    0
 .../apache/xpath/operations/UnaryOperation.java    |    0
 .../org/apache/xpath/operations/Variable.java      |    0
 .../xpath/operations/VariableSafeAbsRef.java       |    0
 .../java}/org/apache/xpath/operations/package.html |    0
 .../src/main/java}/org/apache/xpath/package.html   |    0
 .../xpath/patterns/ContextMatchStepPattern.java    |    0
 .../org/apache/xpath/patterns/FunctionPattern.java |    0
 .../java}/org/apache/xpath/patterns/NodeTest.java  |    0
 .../org/apache/xpath/patterns/NodeTestFilter.java  |    0
 .../org/apache/xpath/patterns/StepPattern.java     |    0
 .../org/apache/xpath/patterns/UnionPattern.java    |    0
 .../java}/org/apache/xpath/patterns/package.html   |    0
 .../org/apache/xpath/res/XPATHErrorResources.java  |    0
 .../apache/xpath/res/XPATHErrorResources_ca.java   |    0
 .../apache/xpath/res/XPATHErrorResources_cs.java   |    0
 .../apache/xpath/res/XPATHErrorResources_de.java   |    0
 .../apache/xpath/res/XPATHErrorResources_en.java   |    0
 .../apache/xpath/res/XPATHErrorResources_es.java   |    0
 .../apache/xpath/res/XPATHErrorResources_fr.java   |    0
 .../apache/xpath/res/XPATHErrorResources_hu.java   |    0
 .../apache/xpath/res/XPATHErrorResources_it.java   |    0
 .../apache/xpath/res/XPATHErrorResources_ja.java   |    0
 .../apache/xpath/res/XPATHErrorResources_ko.java   |    0
 .../apache/xpath/res/XPATHErrorResources_pl.java   |    0
 .../xpath/res/XPATHErrorResources_pt_BR.java       |    0
 .../apache/xpath/res/XPATHErrorResources_ru.java   |    0
 .../apache/xpath/res/XPATHErrorResources_sk.java   |    0
 .../apache/xpath/res/XPATHErrorResources_sl.java   |    0
 .../apache/xpath/res/XPATHErrorResources_sv.java   |    0
 .../apache/xpath/res/XPATHErrorResources_tr.java   |    0
 .../apache/xpath/res/XPATHErrorResources_zh.java   |    0
 .../xpath/res/XPATHErrorResources_zh_CN.java       |    0
 .../xpath/res/XPATHErrorResources_zh_TW.java       |    0
 .../java}/org/apache/xpath/res/XPATHMessages.java  |    0
 .../main/java}/org/apache/xpath/res/package.html   |    0
 .../org/apache/xalan/res/XSLTInfo.properties       |    0
 .../src/main/resources}/trax/trax.properties       |    0
 .../src/site/resources/images}/compilation.gif     |  Bin
 .../src/site/resources/images}/conceptual.gif      |  Bin
 .../src/site/resources/images}/data.gif            |  Bin
 .../src/site/resources/images}/org_apache.gif      |  Bin
 .../src/site/resources/images}/trax.gif            |  Bin
 .../src/site/resources/images}/xalan1_1x1.gif      |  Bin
 .../src/site/resources/images}/xmllogo.gif         |  Bin
 .../src/site/resources/images}/xpath.gif           |  Bin
 .../src/site/resources/images}/xslt_abstract.gif   |  Bin
 xalan/src/site/xhtml/design2_0_0.xhtml             |  277 ++
 .../src/site/xhtml/javadocOverview.xhtml           |    0
 .../xhtml/org/apache/xalan/client/package.xhtml    |   26 +
 .../org/apache/xalan/extensions/package.xhtml      |   26 +
 .../site/xhtml/org/apache/xalan/lib/package.xhtml  |   27 +
 .../xhtml/org/apache/xalan/lib/sql/package.xhtml   |    0
 .../xhtml/org/apache/xalan/processor/package.xhtml |    0
 .../site/xhtml/org/apache/xalan/res/package.xhtml  |   26 +
 .../xhtml/org/apache/xalan/templates/package.xhtml |   43 +
 .../xhtml/org/apache/xalan/trace/package.xhtml     |   26 +
 .../org/apache/xalan/transformer/package.xhtml     |    0
 .../site/xhtml/org/apache/xalan/xslt/package.xhtml |   26 +
 .../site/xhtml/org/apache/xml/utils/package.xhtml  |   27 +
 .../site/xhtml/org/apache/xpath/axes/package.xhtml |   27 +
 .../xhtml/org/apache/xpath/compiler/package.xhtml  |   26 +
 .../xhtml/org/apache/xpath/domapi/package.xhtml    |   26 +
 .../xhtml/org/apache/xpath/functions/package.xhtml |   29 +
 .../xhtml/org/apache/xpath/objects/package.xhtml   |   27 +
 .../org/apache/xpath/operations/package.xhtml      |   26 +
 .../src/site/xhtml/org/apache/xpath/package.xhtml  |   27 +
 .../xhtml/org/apache/xpath/patterns/package.xhtml  |   26 +
 .../site/xhtml/org/apache/xpath/res/package.xhtml  |   26 +
 xalan/tools/xalan2jdoc.jar                         |  Bin 0 -> 124095 bytes
 {tools => xalan/tools}/xalan2jtaglet.jar           |  Bin
 xalan2jtaglet/dependency-reduced-pom.xml           |   24 +
 xalan2jtaglet/pom.xml                              |   79 +
 .../src/main/java/xalan2jtaglet/XSLUsage.java      |   49 +
 .../src/main/java/xalan2jtaglet/XSLUsageTag.java   |   89 +
 xdocs/style/stylesheets/done.xsl                   |   67 -
 1564 files changed, 84361 insertions(+), 76748 deletions(-)

diff --git a/.classpath b/.classpath
index b4678427..a8a10f89 100644
--- a/.classpath
+++ b/.classpath
@@ -1,16 +1,21 @@
 <?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"/>
+	<classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="module" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/.gitignore b/.gitignore
index f4d30d4c..72f53d03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /bin/
-/build/
\ No newline at end of file
+/build/
+/target/
diff --git a/.project b/.project
index 56d086ee..da8c908e 100644
--- a/.project
+++ b/.project
@@ -1,20 +1,4 @@
 <?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>xalan-j-trunk</name>
 	<comment></comment>
@@ -26,8 +10,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<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
index 5917cfb9..e1b6825b 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -10,6 +10,7 @@ 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.forbiddenReference=warning
 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
 org.eclipse.jdt.core.compiler.release=disabled
 org.eclipse.jdt.core.compiler.source=1.8
diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..0eb2be4e
--- /dev/null
+++ b/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Archiver-Version: Plexus Archiver
+Built-By: keshlam
+Created-By: Apache Maven 3.6.3
+Build-Jdk: 1.8.0_382
+
diff --git a/META-INF/maven/org.apache.bcel/bcel/pom.properties b/META-INF/maven/org.apache.bcel/bcel/pom.properties
new file mode 100644
index 00000000..fe6b7bec
--- /dev/null
+++ b/META-INF/maven/org.apache.bcel/bcel/pom.properties
@@ -0,0 +1,3 @@
+artifactId=bcel
+groupId=org.apache.bcel
+version=6.7.0
diff --git a/commits.xml b/ancient_history.commits.xml
similarity index 100%
rename from commits.xml
rename to ancient_history.commits.xml
diff --git a/build.bat b/build.bat
deleted file mode 100644
index 25c89b86..00000000
--- a/build.bat
+++ /dev/null
@@ -1,70 +0,0 @@
-@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
deleted file mode 100644
index 4f7ac97c..00000000
--- a/build.sh
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/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/deprecated_build.sh b/deprecated_build.sh
deleted file mode 100644
index e21d6e13..00000000
--- a/deprecated_build.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-#
-#=========================================================================
-# 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.
-#=========================================================================
-#
-#	Name:   build.sh Build Xalan-J 2.x using Ant
-#	Author: Shane Curcuru
-
-# Alternatively, you can just call "ant" 
-
-echo "Xalan-J 2.x Build"
-echo "-------------"
-
-_JAVACMD=$JAVA_HOME/bin/java
-if [ "$JAVA_HOME" = "" ] ; then
-    echo "Warning: JAVA_HOME environment variable is not set."
-    _JAVACMD=java
-fi
-
-# Default locations of jars we depend on to run Ant on our build.xml file
-if [ "$ANT_HOME" = "" ] ; then
-    ANT_HOME=.
-fi
-if [ "$ANT_JAR" = "" ] ; then
-    ANT_JAR=./tools/ant.jar
-fi
-if [ "$PARSER_JAR" = "" ] ; then
-    PARSER_JAR=./lib/endorsed/xercesImpl.jar
-fi
-
-if [ "$XML_APIS_JAR" = "" ] ; then
-    XML_APIS_JAR=./lib/endorsed/xml-apis.jar
-fi
-
-# Use _underscore prefix to not conflict with user's settings
-# Default to UNIX-style pathing
-CLPATHSEP=:
-# if we're on a Windows box make it ;
-uname | grep WIN && CLPATHSEP=\;
-_CLASSPATH="$ANT_JAR${CLPATHSEP}$XML_APIS_JAR${CLPATHSEP}$PARSER_JAR${CLPATHSEP}$CLASSPATH"
-
-# Attempt to automatically add system classes to _CLASSPATH
-if [ -f $JAVA_HOME/lib/tools.jar ] ; then
-  _CLASSPATH=${_CLASSPATH}${CLPATHSEP}${JAVA_HOME}/lib/tools.jar
-fi
-
-if [ -f $JAVA_HOME/lib/classes.zip ] ; then
-  _CLASSPATH=${_CLASSPATH}${CLPATHSEP}${JAVA_HOME}/lib/classes.zip
-fi
-
-
-echo "Starting Ant with targets: $@"
-echo "        ...with classpath: $_CLASSPATH"
-
-"$_JAVACMD" $JAVA_OPTS -Dant.home=$ANT_HOME -classpath "$_CLASSPATH" org.apache.tools.ant.Main $@
-
-
-
-
diff --git a/lib/bcel-6.7.0.jar b/lib/bcel-6.7.0.jar
deleted file mode 100644
index fb36e1d3..00000000
Binary files a/lib/bcel-6.7.0.jar and /dev/null differ
diff --git a/lib/bsf.jar b/lib/bsf.jar
deleted file mode 100644
index 30289673..00000000
Binary files a/lib/bsf.jar and /dev/null differ
diff --git a/lib/commons-logging-1.2.jar b/lib/commons-logging-1.2.jar
deleted file mode 100644
index 93a3b9f6..00000000
Binary files a/lib/commons-logging-1.2.jar and /dev/null differ
diff --git a/lib/endorsed/xercesImpl.jar b/lib/endorsed/xercesImpl.jar
deleted file mode 100644
index ccbae9f4..00000000
Binary files a/lib/endorsed/xercesImpl.jar and /dev/null differ
diff --git a/lib/endorsed/xml-apis.jar b/lib/endorsed/xml-apis.jar
deleted file mode 100644
index 4f677fc8..00000000
Binary files a/lib/endorsed/xml-apis.jar and /dev/null differ
diff --git a/lib/javaee-api-5.0-2.jar b/lib/javaee-api-5.0-2.jar
deleted file mode 100644
index 65acd770..00000000
Binary files a/lib/javaee-api-5.0-2.jar and /dev/null differ
diff --git a/lib/regexp.jar b/lib/regexp.jar
deleted file mode 100644
index 713441c5..00000000
Binary files a/lib/regexp.jar and /dev/null differ
diff --git a/lib/rhino-1.7.14.jar b/lib/rhino-1.7.14.jar
deleted file mode 100644
index ad47a201..00000000
Binary files a/lib/rhino-1.7.14.jar and /dev/null differ
diff --git a/lib/runtime.jar b/lib/runtime.jar
deleted file mode 100644
index c74baf19..00000000
Binary files a/lib/runtime.jar and /dev/null differ
diff --git a/lib/servlet-api-2.5.jar b/lib/servlet-api-2.5.jar
deleted file mode 100644
index b0537c4d..00000000
Binary files a/lib/servlet-api-2.5.jar and /dev/null differ
diff --git a/mvnbuild.bat b/mvnbuild.bat
new file mode 100755
index 00000000..c55ac9c9
--- /dev/null
+++ b/mvnbuild.bat
@@ -0,0 +1,4 @@
+call mvn clean package site source:jar source:test-jar
+call ./stylebook_docgen.bat
+rem move stylebook_docgen into toplevel pom.xml?
+
diff --git a/mvnbuild.sh b/mvnbuild.sh
new file mode 100755
index 00000000..13bbe0d1
--- /dev/null
+++ b/mvnbuild.sh
@@ -0,0 +1,4 @@
+mvn clean package site source:jar source:test-jar
+./stylebook_docgen.sh
+# move stylebook_docgen into toplevel pom.xml?
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..4f446e11
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <packaging>pom</packaging>
+  <!-- KNOWN ISSUES:
+	"Production" jar/tar files?
+	Doclet and taglet (taglet working, but only for ./xalan?)
+	stylebook (currenly, see stylebook.docgen.sh)
+       
+       xalan-test compatibility/success/submodule
+
+       NOTE: To get dependency tree from a multi-module project, use the 
+       command "mvn compile dependency:tree" so everything is in scope.
+  -->
+  
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+  <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
+  <version>2.7.3-SNAPSHOT</version>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <modules>
+    <module>serializer</module>
+    <module>xalan</module>
+    <module>samples</module>
+    <module>xalan2jtaglet</module>
+  </modules>
+
+  <build>
+    <sourceDirectory>src/main/java</sourceDirectory>
+    <resources>
+      <resource>
+	<directory>META-INF</directory>
+	<includes>
+	  <include>LICENSE.txt</include>
+	  <include>NOTICE.txt</include>
+	</includes>
+      </resource>
+      <resource>
+	<directory>resources</directory>
+	<includes>
+	  <include>**/*.properties</include>
+	</includes>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+	<artifactId>maven-compiler-plugin</artifactId>
+	<version>3.8.1</version>
+	<configuration>
+	  <source>1.8</source>
+	  <target>1.8</target>
+	</configuration>
+      </plugin>
+
+      <!--
+	  https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html -->
+      <plugin>
+	<groupId>org.apache.maven.plugins</groupId>
+	<artifactId>maven-shade-plugin</artifactId>
+	<version>3.5.0</version>
+	<executions>
+	  <execution>
+	    <phase>package</phase>
+	    <goals>
+	      <goal>shade</goal>
+	    </goals>
+	    <configuration>
+	      <artifactSet>
+		<excludes>
+		  <!-- Their examples -->
+		  <exclude>junit:junit</exclude>
+		  <exclude>jmock:*</exclude>
+		  <exclude>*:xml-apis</exclude>
+		  <exclude>org.apache.maven:lib:tests</exclude>
+		  <!-- What I think I need to exclude -->
+		  <exclude>com.github.vbmacher:java-cup</exclude>
+		  <exclude>commons-logging:commons-logging</exclude>
+		  <!-- Fighting to excluse javax/script/... -->
+		  <exclude>javax:*</exclude>
+		</excludes>
+	      </artifactSet>
+	    </configuration>
+	  </execution>
+	</executions>
+      </plugin>
+
+      <plugin>
+	<groupId>org.apache.maven.plugins</groupId>
+	<artifactId>maven-site-plugin</artifactId>
+	<version>3.7.1</version>
+      </plugin>
+
+      <!-- Maven finds this without assistance, but grumbles about
+	   unspecified plugin version, so... -->
+      <plugin>
+	<groupId>org.apache.maven.plugins</groupId>
+	<artifactId>maven-project-info-reports-plugin</artifactId>
+	<version>3.4.5</version>
+      </plugin>
+
+    </plugins>
+  </build>
+
+
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>3.6.0</version>
+	<configuration>
+
+	  <!-- Mute "missing" javadoc errors. We have lots of 'em, and
+	       they're a distraction from simply getting the Maven
+	       build up and running. Open a jira task to fix this
+	       later. GONK. -->
+	  <doclint>none</doclint>
+
+	  <groups>
+            <group>
+	      <title>XPath</title>
+	      <packages>org.apache.xpath*</packages>
+	    </group>
+            <group>
+	      <title>Document Table Model (DTM)</title>
+	      <packages>org.apache.xml.dtm*</packages>
+	    </group>          
+            <group>
+	      <title>Utilities</title>
+	      <packages>org.apache.xml.utils*</packages>
+	    </group>
+            <group>
+	      <title>Xalan Other</title>
+	      <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</packages>
+	    </group>
+            <group>
+	      <title>Xalan Extensions</title>
+	      <packages>org.apache.xalan.lib*</packages>
+	    </group>
+            <group>
+	      <title>Serializers</title>
+	      <packages>org.apache.xml.serialize*:org.apache.xalan.serialize</packages>
+	    </group>
+            <group>
+	      <title>SAX 2</title>
+	      <packages>org.xml.sax*</packages>
+	    </group>
+            <group>
+	      <title>DOM 2</title>
+	      <packages>org.w3c.dom*</packages>
+	    </group>
+            <group>
+	      <title>XSLTC Core</title>
+	      <packages>org.apache.xalan.xsltc*</packages>
+	    </group>
+	  </groups>
+
+	  <!-- Locally provided taglet; see xalan2jtaglet module -->
+	  <taglets>
+            <taglet>
+	      <tagletClass>xalan2jtaglet.XSLUsageTag</tagletClass>
+	    </taglet>
+	  </taglets>
+	  <tagletArtifact>
+	    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+	    <artifactId>xalan2jtaglet</artifactId>
+	    <version>2.7.3-SNAPSHOT</version>
+	  </tagletArtifact>
+
+	</configuration>
+
+        <reportSets>
+          <reportSet>
+            <id>aggregate</id>
+            <inherited>false</inherited>        
+            <reports>
+              <report>aggregate</report>
+            </reports>
+          </reportSet>
+          <reportSet>
+            <id>default</id>
+            <reports>
+              <report>javadoc</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+    </plugins>
+  </reporting>
+
+</project>
diff --git a/samples/ApplyXPath/ApplyXPath.java b/samples/ApplyXPath/ApplyXPath.java
deleted file mode 100644
index fe8478f9..00000000
--- a/samples/ApplyXPath/ApplyXPath.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-// This file uses 4 space indents, no tabs.
-
-import java.io.FileInputStream;
-import java.io.OutputStreamWriter;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.apache.xpath.XPathAPI;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.traversal.NodeIterator;
-import org.xml.sax.InputSource;
-
-/**
- *  Very basic utility for applying an XPath epxression to an xml file and printing information
- /  about the execution of the XPath object and the nodes it finds.
- *  Takes 2 arguments:
- *     (1) an xml filename
- *     (2) an XPath expression to apply to the file
- *  Examples:
- *     java ApplyXPath foo.xml /
- *     java ApplyXPath foo.xml /doc/name[1]/@last
- * @see XPathAPI
- */
-public class ApplyXPath
-{
-  protected String filename = null;
-  protected String xpath = null;
-
-  /** Process input args and execute the XPath.  */
-  public void doMain(String[] args)
-    throws Exception
-  {
-    filename = args[0];
-    xpath = args[1];
-
-    if ((filename != null) && (filename.length() > 0)
-        && (xpath != null) && (xpath.length() > 0))
-    {
-      // Tell that we're loading classes and parsing, so the time it 
-      // takes to do this doesn't get confused with the time to do 
-      // the actual query and serialization.
-      System.out.println("Loading classes, parsing "+filename+", and setting up serializer");
-      
-      // Set up a DOM tree to query.
-      InputSource in = new InputSource(new FileInputStream(filename));
-      DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
-      dfactory.setNamespaceAware(true);
-      Document doc = dfactory.newDocumentBuilder().parse(in);
-      
-      // Set up an identity transformer to use as serializer.
-      Transformer serializer = TransformerFactory.newInstance().newTransformer();
-      serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-
-      // Use the simple XPath API to select a nodeIterator.
-      System.out.println("Querying DOM using "+xpath);
-      NodeIterator nl = XPathAPI.selectNodeIterator(doc, xpath);
-
-      // Serialize the found nodes to System.out.
-      System.out.println("<output>");
-                  
-      Node n;
-      while ((n = nl.nextNode())!= null)
-      {         
-	if (isTextNode(n)) {
-	    // DOM may have more than one node corresponding to a 
-	    // single XPath text node.  Coalesce all contiguous text nodes
-	    // at this level
-	    StringBuffer sb = new StringBuffer(n.getNodeValue());
-	    for (
-	      Node nn = n.getNextSibling(); 
-	      isTextNode(nn);
-	      nn = nn.getNextSibling()
-	    ) {
-	      sb.append(nn.getNodeValue());
-	    }
-	    System.out.print(sb);
-	}
-	else {
-         serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(System.out)));
-	}
-        System.out.println();
-      }
-      System.out.println("</output>");
-    }
-    else
-    {
-      System.out.println("Bad input args: " + filename + ", " + xpath);
-    }
-  }
-  
-  /** Decide if the node is text, and so must be handled specially */
-  static boolean isTextNode(Node n) {
-    if (n == null)
-      return false;
-    short nodeType = n.getNodeType();
-    return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.TEXT_NODE;
-  }
-
-  /** Main method to run from the command line.    */
-  public static void main (String[] args)
-    throws Exception
-  {
-    if (args.length != 2)
-    {
-      System.out.println("java ApplyXPath filename.xml xpath\n"
-                         + "Reads filename.xml and applies the xpath; prints the nodelist found.");
-      return;
-    }
-        
-    ApplyXPath app = new ApplyXPath();
-    app.doMain(args);
-  }	
-  
-} // end of class ApplyXPath
-
diff --git a/samples/ApplyXPathDOM/ApplyXPathDOM.java b/samples/ApplyXPathDOM/ApplyXPathDOM.java
deleted file mode 100644
index 7ebb1d26..00000000
--- a/samples/ApplyXPathDOM/ApplyXPathDOM.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-// This file uses 4 space indents, no tabs.
-
-import java.io.FileInputStream;
-import java.io.OutputStreamWriter;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.apache.xpath.domapi.XPathEvaluatorImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.xpath.XPathEvaluator;
-import org.w3c.dom.xpath.XPathNSResolver;
-import org.w3c.dom.xpath.XPathResult;
-import org.xml.sax.InputSource;
-
-/**
- *  Very basic utility for applying the DOM L3 XPath API (currently in Last Call)
- *  to an xml file and printing information about the execution of the XPath object 
- *  and the nodes it finds.
- *  Takes 2 arguments:
- *     (1) an xml filename
- *     (2) an XPath expression to apply to the file
- *  Examples:
- *     java ApplyXPathDOM foo.xml /
- *     java ApplyXPathDOM foo.xml /doc/name[1]/@last
- *
- *<p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
- * @see XPathEvaluator
- * 
- */
-public class ApplyXPathDOM
-{
-  protected String filename = null;
-  protected String xpath = null;
-
-  /** Process input args and execute the XPath.  */
-  public void doMain(String[] args)
-    throws Exception
-  {
-    filename = args[0];
-    xpath = args[1];
-
-    if ((filename != null) && (filename.length() > 0)
-        && (xpath != null) && (xpath.length() > 0))
-    {
-      // Tell that we're loading classes and parsing, so the time it 
-      // takes to do this doesn't get confused with the time to do 
-      // the actual query and serialization.
-      System.out.println("Loading classes, parsing "+filename+", and setting up serializer");
-      
-      // Set up a DOM tree to query.
-      InputSource in = new InputSource(new FileInputStream(filename));
-      DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
-      dfactory.setNamespaceAware(true);
-      Document doc = dfactory.newDocumentBuilder().parse(in);
-      
-      // Set up an identity transformer to use as serializer.
-      Transformer serializer = TransformerFactory.newInstance().newTransformer();
-      serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-
-      // Use the DOM L3 XPath API to apply the xpath expression to the doc.
-      System.out.println("Querying DOM using "+xpath);
-      
-      // Create an XPath evaluator and pass in the document.
-      XPathEvaluator evaluator = new XPathEvaluatorImpl(doc);
-      XPathNSResolver resolver = evaluator.createNSResolver(doc);
-      
-      // Evaluate the xpath expression
-      XPathResult result = (XPathResult)evaluator.evaluate(xpath, doc, resolver, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
-      
-
-      // Serialize the found nodes to System.out.
-      System.out.println("<output>");
-                  
-      Node n;
-      while ((n = result.iterateNext())!= null)
-      {         
-        if (isTextNode(n)) {
-	    // DOM may have more than one node corresponding to a 
-	    // single XPath text node.  Coalesce all contiguous text nodes
-	    // at this level
-	    StringBuffer sb = new StringBuffer(n.getNodeValue());
-	    for (
-	      Node nn = n.getNextSibling(); 
-	      isTextNode(nn);
-	      nn = nn.getNextSibling()
-	    ) {
-	      sb.append(nn.getNodeValue());
-	    }
-	    System.out.print(sb);
-	}
-	else {
-         serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(System.out)));
-	}
-        System.out.println();
-      }
-      System.out.println("</output>");
-    }
-    else
-    {
-      System.out.println("Bad input args: " + filename + ", " + xpath);
-    }
-  }
-  
-  /** Decide if the node is text, and so must be handled specially */
-  static boolean isTextNode(Node n) {
-    if (n == null)
-      return false;
-    short nodeType = n.getNodeType();
-    return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.TEXT_NODE;
-  }
-
-  /** Main method to run from the command line.    */
-  public static void main (String[] args)
-    throws Exception
-  {
-    if (args.length != 2)
-    {
-      System.out.println("java ApplyXPathDOM filename.xml xpath\n"
-                         + "Reads filename.xml and applies the xpath; prints the nodelist found.");
-      return;
-    }
-        
-    ApplyXPathDOM app = new ApplyXPathDOM();
-    app.doMain(args);
-  }	
-  
-} // end of class ApplyXPathDOM
-
diff --git a/samples/CompiledApplet/TransformApplet.java b/samples/CompiledApplet/TransformApplet.java
deleted file mode 100644
index 52baa1b1..00000000
--- a/samples/CompiledApplet/TransformApplet.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.applet.Applet;
-
-import java.awt.BorderLayout;
-import java.awt.Button;
-import java.awt.Frame;
-import java.awt.Label;
-import java.awt.Panel;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-/**
- * This applet demonstrates how XSL transformations can be made to run in
- * browsers without native XSLT support.
- *
- * Note that the XSLTC transformation engine is invoked through the JAXP
- * interface, using the XSLTC "use-classpath" attribute.  The
- * "use-classpath" attribute specifies to the XSLTC TransformerFactory
- * that a precompiled version of the stylesheet (translet) may be available,
- * and that that should be used in preference to recompiling the stylesheet.
- * @author Morten Jorgensen
- * @author Jacek Ambroziak
- */
-public final class TransformApplet extends Applet {
-    TransformerFactory tf;
-    TransformDelegate transformThread;
-    /**
-     * This class implements a dialog box used for XSL messages/comments
-     */
-    public class MessageFrame extends Frame {
-
-        public Frame frame;
-
-        public class ButtonHandler implements ActionListener {
-            public void actionPerformed(ActionEvent e) {
-                frame.setVisible(false);
-            }
-        }
-
-        /**
-         * This method handles xml:message and xsl:comment by displaying
-         * the message/comment in a dialog box.
-         */
-        public MessageFrame(String title, String message) {
-            super(title);
-            frame = this; // Make visible to ButtonHandler
-            setSize(320,200);
-
-            // Create a panel for the message itself
-            Panel center = new Panel();
-            center.add(new Label(message));
-
-            // Create a panel for the 'OK' button
-            Panel bottom = new Panel();
-            Button okButton = new Button("   OK   ");
-            okButton.addActionListener(new ButtonHandler());
-            bottom.add(okButton);
-
-            // Add the two panels to the window/frame
-            add(center, BorderLayout.CENTER);
-            add(bottom,BorderLayout.SOUTH);
-
-            // Show the whole thing
-            setVisible(true);
-        }
-
-    }
-
-    /**
-     * The applet uses this method to display messages and comments
-     * generated by xsl:message and xsl:comment elements.
-     */
-    public class AppletErrorListener implements ErrorListener {
-        public void displayMessage(TransformerException e) {
-            MessageFrame z = new MessageFrame("XSL transformation alert",
-                                              e.getMessageAndLocation());
-        }
-
-        public void error(TransformerException e) {
-            displayMessage(e);
-        }
-
-        public void fatalError(TransformerException e) {
-            displayMessage(e);
-        }
-
-        public void warning(TransformerException e) {
-                    displayMessage(e);
-        }
-    }
-
-    /**
-     * This method is the main body of the applet. The method is called
-     * by some JavaScript code in an HTML document.
-     */
-    public synchronized String transform(Object arg1, Object arg2) {
-        final String stylesheetURL = (String)arg1;
-        final String documentURL = (String)arg2;
-
-        transformThread.setStylesheetURL(stylesheetURL);
-        transformThread.setDocumentURL(documentURL);
-        transformThread.setWaiting(false);
-        transformThread.wakeUp();
-        try{
-            wait();
-        } catch (InterruptedException e){}
-        return transformThread.getOutput();
-    }
-
-    public void start() {
-        transform(getParameter("stylesheet-name"),
-                  getParameter("input-document"));
-    }
-    public void destroy() {
-        transformThread.destroy();
-    }
-    public void init() {
-        tf = TransformerFactory.newInstance();
-        try {
-            tf.setAttribute("use-classpath", Boolean.TRUE);
-        } catch (IllegalArgumentException iae) {
-            System.err.println("Could not set XSLTC-specific TransformerFactory"
-                               + " attributes.  Transformation failed.");
-        }
-        // Another thread is created to keep the context class loader
-        // information.  When use JDK 1.4 plugin for browser, to get around the
-        // problem with the bundled old version of xalan and endorsed class
-        // loading mechanism
-        transformThread = new TransformDelegate(true);
-        Thread t = new Thread(transformThread);
-        t.setName("transformThread");
-        t.start();
-    }
-    public String getOutput(){
-        return transformThread.getOutput();
-    }
-    public synchronized void wakeUp() {
-        notifyAll();
-    }
-    class TransformDelegate implements Runnable {
-        private boolean isRunning, isWaiting;
-        private String stylesheetURL, documentURL;
-        private String outPut;
-        public TransformDelegate(boolean arg) {
-            isRunning = arg;
-            isWaiting = true;
-        }
-        public synchronized void run() {
-            while(isRunning){
-                while(isWaiting){
-                    try {
-                        wait();
-                    } catch (InterruptedException e){}
-                }
-                transform();
-                isWaiting = true;
-                TransformApplet.this.wakeUp();
-            }
-        }
-
-        public void setStylesheetURL(String arg){
-            stylesheetURL = arg;
-        }
-        public void setDocumentURL(String arg) {
-            documentURL = arg;
-        }
-        public String getStylesheetURL(){
-            return stylesheetURL;
-        }
-        public String getDocumentURL() {
-            return documentURL;
-        }
-        public void setWaiting(boolean arg) {
-            isWaiting = arg;
-        }
-        public void destroy() {
-            isRunning = false;
-        }
-        public synchronized void wakeUp() {
-            notifyAll();
-        }
-        public String getOutput(){
-            return outPut;
-        }
-
-        public void transform(){
-            String xslURL = getStylesheetURL();
-            String docURL = getDocumentURL();
-            // Initialise the output stream
-            StringWriter sout = new StringWriter();
-            PrintWriter out = new PrintWriter(sout);
-            // Check that the parameters are valid
-            try {
-                if (xslURL == null || docURL == null) {
-                    out.println("<h1>Transformation error</h1>");
-                    out.println("The parameters <b><tt>stylesheetURL</tt></b> "+
-                                "and <b><tt>source</tt></b> must be specified");
-                } else {
-                    Transformer t = tf.newTransformer(new StreamSource(xslURL));
-                    t.setErrorListener(new AppletErrorListener());
-
-                    final long start = System.currentTimeMillis();
-
-                    t.transform(new StreamSource(docURL),
-                                new StreamResult(out));
-
-                    final long done = System.currentTimeMillis() - start;
-                    out.println("<!-- transformed by XSLTC in " + done
-                                + "msecs -->");
-                }
-                // Now close up the sink, and return the HTML output in the
-                // StringWrite object as a string.
-                out.close();
-                System.err.println("Transformation complete!");
-                System.err.println(sout.toString());
-                outPut = sout.toString();
-                sout.close();
-            } catch (RuntimeException e) {
-                out.println("<h1>RTE</h1>");
-                out.close();
-                outPut = sout.toString();
-            } catch (Exception e) {
-                out.println("<h1>exception</h1>");
-                out.println(e.toString());
-                out.close();
-                outPut = sout.toString();
-            }
-        }
-    }
-}
diff --git a/samples/CompiledBrazil/TransformHandler.java b/samples/CompiledBrazil/TransformHandler.java
deleted file mode 100644
index 530f6bce..00000000
--- a/samples/CompiledBrazil/TransformHandler.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import java.util.StringTokenizer;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import sunlabs.brazil.server.Handler;
-import sunlabs.brazil.server.Request;
-import sunlabs.brazil.server.Server;
-
-/**
- * This Brazil handler demonstrates how XSL transformations can be made
- * available as a web service without using a full web server. This class
- * implements the Handler interface from the Brazil project, see:
- * http://www.sun.com/research/brazil/
- *
- * Note that the XSLTC transformation engine is invoked through the JAXP
- * interface, using the XSLTC "use-classpath" attribute.  The
- * "use-from-classpath" attribute specifies to the XSLTC TransformerFactory
- * that a precompiled version of the stylesheet (translet) may be available,
- * and that should be used in preference to recompiling the stylesheet.
- * @author Morten Jorgensen
- */
-public class TransformHandler implements Handler {
-
-    private TransformerFactory m_tf = null;
-
-    // These two are used while parsing the parameters in the URL
-    private final String PARAM_TRANSLET = "translet=";
-    private final String PARAM_DOCUMENT = "document=";
-    private final String PARAM_STATS = "stats=";
-
-    // All output goes here:
-    private PrintWriter m_out = null;
-
-    /**
-     * Dump an error message to output
-     */
-    public void errorMessage(String message, Exception e) {
-	if (m_out == null) {
-            return;
-        }
-	m_out.println("<h1>XSL transformation error</h1>"+message);
-	m_out.println("<br>Exception:</br>"+e.toString());
-    }
-
-    public void errorMessage(String message) {
-	if (m_out == null) return;
-	m_out.println("<h1>XSL transformation error</h1>"+message);
-    }
-
-    /**
-     * This method is run when the Brazil proxy is loaded
-     */
-    public boolean init(Server server, String prefix) {
-	return true;
-    }
-
-    /**
-     * This method is run for every HTTP request sent to the proxy
-     */
-    public boolean respond(Request request) throws IOException {
-
-	// Initialise the output buffer
-	final StringWriter sout = new StringWriter();
-	m_out = new PrintWriter(sout);
-
-	// These two hold the parameters from the URL 'translet' and 'document'
-	String transletName = null;
-	String document = null;
-	String stats = null;
-
-	// Get the parameters from the URL
-	final StringTokenizer params = new StringTokenizer(request.query,"&");
-	while (params.hasMoreElements()) {
-	    final String param = params.nextToken();
-	    if (param.startsWith(PARAM_TRANSLET)) {
-		transletName = param.substring(PARAM_TRANSLET.length());
-	    }
-	    else if (param.startsWith(PARAM_DOCUMENT)) {
-		document = param.substring(PARAM_DOCUMENT.length());
-	    }
-	    else if (param.startsWith(PARAM_STATS)) {
-		stats = param.substring(PARAM_STATS.length());
-	    }
-	}
-
-	try {
-	    // Make sure that both parameters were specified
-	    if ((transletName == null) || (document == null)) {
-		errorMessage("Parameters <b><tt>translet</tt></b> and/or "+
-			     "<b><tt>document</tt></b> not specified.");
-	    }
-	    else {
-                if (m_tf == null) {
-                    m_tf = TransformerFactory.newInstance();
-                    try {
-                        m_tf.setAttribute("use-classpath", Boolean.TRUE);
-                    } catch (IllegalArgumentException iae) {
-                        System.err.println(
-                            "Could not set XSLTC-specific TransformerFactory "
-                          + "attributes.  Transformation failed.");
-                    }
-                }
-                Transformer t =
-                     m_tf.newTransformer(new StreamSource(transletName));
-
-		// Do the actual transformation
-		final long start = System.currentTimeMillis();
-		t.transform(new StreamSource(document),
-                            new StreamResult(m_out));
-		final long done = System.currentTimeMillis() - start;
-		m_out.println("<!-- transformed by XSLTC in "+done+"ms -->");
-	    }
-	}
-	catch (Exception e) {
-	    errorMessage("Internal error.",e);
-	}
-
-	// Pass the transformation output as the HTTP response
-	request.sendResponse(sout.toString());
-	return true;
-    }
-
-
-}
diff --git a/samples/CompiledEJB/TransformBean.java b/samples/CompiledEJB/TransformBean.java
deleted file mode 100644
index 592fc99e..00000000
--- a/samples/CompiledEJB/TransformBean.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import javax.ejb.SessionBean;
-import javax.ejb.SessionContext;
-
-/**
- * @author Morten Jorgensen
- */
-public class TransformBean implements SessionBean {
-
-    private SessionContext m_context = null;
-    
-    private final static String nullErrorMsg =
-	"<h1>XSL transformation error</h1>"+
-	"<p>'null' parameters sent to the XSL transformation bean's "+
-	"<tt>transform(String document, String translet)</tt> method.</p>";
-
-    private static final String NAMESPACE_FEATURE =
-	"http://xml.org/sax/features/namespaces";
-
-    /**
-     * Generates HTML from a basic error message and an exception
-     */
-    private void errorMsg(PrintWriter out, Exception e, String msg) {
-	out.println("<h1>Error</h1>");
-	out.println("<p>"+msg+"</p><br>");
-	out.println(e.toString());
-    }
-
-    /**
-     * Main bean entry point
-     */
-    public String transform(String document, String transletName) {
-
-	// Initialise the output stream
-	final StringWriter sout = new StringWriter();
-	final PrintWriter out = new PrintWriter(sout);
-
-	try {
-	    if ((document == null) || (transletName == null)) {
-		out.println(nullErrorMsg);
-	    }
-	    else {
-                TransformerFactory tf = TransformerFactory.newInstance();
-                try {
-                    tf.setAttribute("use-classpath", Boolean.TRUE);
-                } catch (IllegalArgumentException iae) {
-                    System.err.println(
-                        "Could not set XSLTC-specific TransformerFactory "
-                      + "attributes.  Transformation failed.");
-                }
-
-                Transformer t =
-                    tf.newTransformer(new StreamSource(transletName));
-
-                // Do the actual transformation
-                final long start = System.currentTimeMillis();
-                t.transform(new StreamSource(document),
-                            new StreamResult(out));
-                final long done = System.currentTimeMillis() - start;
-                out.println("<!-- transformed by XSLTC in "+done+"msecs -->");
-	    }
-	}
-
-	catch (Exception e) {
-	    errorMsg(out, e, "Impossible state reached.");
-	}
-
-	// Now close up the sink, and return the HTML output in the
-	// StringWrite object as a string.
-	out.close();
-	return sout.toString();
-    }
-
-    /**
-     *
-     */
-    public void setSessionContext(SessionContext context) {
-	m_context = context;
-    }
-
-    // General EJB entry points
-    public void ejbCreate() { }
-    public void ejbRemove() { }
-    public void ejbActivate() { }
-    public void ejbPassivate() { }
-    public void ejbLoad() { }
-    public void ejbStore() { }
-}
diff --git a/samples/CompiledEJB/TransformHome.java b/samples/CompiledEJB/TransformHome.java
deleted file mode 100644
index 9451c1c6..00000000
--- a/samples/CompiledEJB/TransformHome.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.rmi.RemoteException;
-
-import javax.ejb.CreateException;
-import javax.ejb.EJBHome;
-
-/**
- * XSL transformation bean home interface
- * @author Morten Jorgensen
- */
-public interface TransformHome extends EJBHome {
-    TransformRemote create() throws CreateException, RemoteException;
-}
diff --git a/samples/CompiledEJB/TransformRemote.java b/samples/CompiledEJB/TransformRemote.java
deleted file mode 100644
index 14b29947..00000000
--- a/samples/CompiledEJB/TransformRemote.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.rmi.RemoteException;
-
-import javax.ejb.EJBObject;
-
-/**
- * XSL transformation bean remote interface
- * @author Morten Jorgensen
- */
-public interface TransformRemote extends EJBObject {
-    public String transform(String document, String transletName) 
-	throws RemoteException;
-}
diff --git a/samples/CompiledEJB/TransformServlet.java b/samples/CompiledEJB/TransformServlet.java
deleted file mode 100644
index 55391709..00000000
--- a/samples/CompiledEJB/TransformServlet.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.naming.InitialContext;
-import javax.rmi.PortableRemoteObject;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * @author Morten Jorgensen
- */
-public class TransformServlet extends HttpServlet {
-
-    // Error message used when the XSL transformation bean cannot be created
-    private final static String createErrorMsg =
-	"<h1>XSL transformation bean error</h1>"+
-	"<p>An XSL transformation bean could not be created.</p>";
-
-    // Transformer - "more than meets the eye".
-    private TransformHome transformer;
-
-    /**
-     * Servlet initializer - look up the bean's home interface
-     */
-    public void init(ServletConfig config) 
-	throws ServletException{
-	try{
-	    InitialContext context = new InitialContext();
-	    Object transformRef = context.lookup("transform");
-	    transformer =
-		(TransformHome)PortableRemoteObject.narrow(transformRef,
-							   TransformHome.class);
-	} catch (Exception NamingException) {
-	    NamingException.printStackTrace();
-	}
-    }
-
-    /**
-     * Handles "GET" HTTP requests - ie. runs the actual transformation
-     */
-    public void doGet (HttpServletRequest request, 
-		       HttpServletResponse response) 
-	throws ServletException, IOException {
-
-	String document = request.getParameter("document");
-	String translet = request.getParameter("translet");
-
-	response.setContentType("text/html");
-
-	PrintWriter out = response.getWriter();
-	try{
-	    // Get the insult from the bean
-	    TransformRemote xslt = transformer.create();
-	    String result = xslt.transform(document, translet);
-	    out.println(result);
-	} catch(Exception CreateException){
-	    out.println(createErrorMsg);
-	}
-	out.close();
-    }
-
-    public void destroy() {
-	System.out.println("Destroy");
-    }
-}
diff --git a/samples/CompiledJAXP/Compile.java b/samples/CompiledJAXP/Compile.java
deleted file mode 100644
index a2c08b35..00000000
--- a/samples/CompiledJAXP/Compile.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import javax.xml.transform.Templates;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamSource;
-
-public class Compile {
-
-    public static void main(String[] args){
-        Compile app = new Compile();
-        app.run(args[0]);
-    }
-
-    /**
-     * Compiles an XSL stylesheet into a translet, wraps the translet
-     * inside a Templates object and dumps it to a file.
-     */
-    public void run(String xsl) {
-        try {
-            // Set XSLTC's TransformerFactory implementation as the default
-            System.setProperty("javax.xml.transform.TransformerFactory",
-                         "org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
-
-	    // Get an input stream for the XSL stylesheet
-	    StreamSource stylesheet = new StreamSource(xsl);
-
-	    // The TransformerFactory will compile the stylesheet and
-	    // put the translet classes inside the Templates object
-	    TransformerFactory factory = TransformerFactory.newInstance();
-            factory.setAttribute("generate-translet", Boolean.TRUE);
-	    Templates templates = factory.newTemplates(stylesheet);
-        }
-	catch (Exception e) {
-            System.err.println("Exception: " + e); 
-	    e.printStackTrace();
-        }
-        System.exit(0);
-    }
-
-    private void usage() {
-        System.err.println("Usage: compile <xsl_file>");
-        System.exit(1);
-    }
-
-}
diff --git a/samples/CompiledJAXP/Transform.java b/samples/CompiledJAXP/Transform.java
deleted file mode 100644
index da9ac396..00000000
--- a/samples/CompiledJAXP/Transform.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.OutputStreamWriter;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-public class Transform {
-
-    public static void main(String[] args){
-        Transform app = new Transform();
-        app.run(args);
-    }
-
-    /**
-     * Asks the TransformerFactory to try to load a precompiled version of
-     * the translet from the class path to construct a Transformer object.
-     * The translet performs the transformation on behalf of the
-     * Transformer.transform() method.
-     */
-    public void run(String[] args){
-        String xml = args[0];
-        String transletURI = args[1];
-
-        try {
-            // Set XSLTC's TransformerFactory implementation as the default
-            System.setProperty("javax.xml.transform.TransformerFactory",
-                         "org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
-
-            TransformerFactory tf = TransformerFactory.newInstance();
-            tf.setAttribute("use-classpath", Boolean.TRUE);
-	    Transformer transformer = tf.newTransformer(
-                                               new StreamSource(transletURI));
-
-	    StreamSource document = new StreamSource(xml);
-            StreamResult result = new StreamResult(
-                                           new OutputStreamWriter(System.out));
-            transformer.transform(document, result);
-        }
-	catch (Exception e) {
-            System.err.println("Exception: " + e); 
-	    e.printStackTrace();
-        }
-        System.exit(0);
-    }
-
-    public void usage() {
-        System.err.println("Usage: run <xml_file> <xsl_file>");
-        System.exit(1);
-    }
-
-}
diff --git a/samples/CompiledServlet/CompileServlet.java b/samples/CompiledServlet/CompileServlet.java
deleted file mode 100644
index 0f2dca8c..00000000
--- a/samples/CompiledServlet/CompileServlet.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import java.net.URL;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.xalan.xsltc.compiler.XSLTC;
-
-/**
- * @author Morten Jorgensen
- * @author Jacek Ambroziak
- */
-public class CompileServlet extends HttpServlet {
-
-    /**
-     * Main servlet entry point. The servlet reads a stylesheet from the
-     * URI specified by the "sheet" parameter. The compiled Java class
-     * ends up in the CWD of the web server (a better solution would be
-     * to have an environment variable point to a translet directory).
-     */
-    public void doGet(HttpServletRequest request,
-		      HttpServletResponse response)
-	throws IOException, ServletException {
-
-	response.setContentType("text/html");
-	PrintWriter out = response.getWriter();
-		
-	String stylesheetName = request.getParameter("sheet");
-	
-	out.println("<html><head>");
-	out.println("<title>Servlet Stylesheet Compilation</title>");
-	out.println("</head><body>");
-
-	if (stylesheetName == null) {
-	    out.println("<h1>Compilation error</h1>");
-	    out.println("The parameter <b><tt>sheet</tt></b> "+
-			"must be specified");
-	}
-	else {
-	    XSLTC xsltc = new XSLTC();
-
-	    xsltc.init();
-	    xsltc.compile(new URL(stylesheetName));
-	    out.println("<h1>Compilation successful</h1>");
-	    out.println("The stylesheet was compiled into the translet "+
-			"class "+xsltc.getClassName() + " and is now "+
-			"available for transformations on this server.");
-	}
-	out.println("</body></html>");
-    }
-}
diff --git a/samples/CompiledServlet/TransformServlet.java b/samples/CompiledServlet/TransformServlet.java
deleted file mode 100644
index 67c13da1..00000000
--- a/samples/CompiledServlet/TransformServlet.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.xml.sax.SAXException;
-
-/**
- * This servlet demonstrates how XSL transformations can be made available as
- * a web service. See the CompileServlet for an example on how stylesheets
- * can be pre-compiled before this servlet is invoked.
- *
- * Note that the XSLTC transformation engine is invoked through the JAXP
- * interface, using the XSLTC "use-classpath" attribute.  The
- * "use-classpath" attribute specifies to the XSLTC TransformerFactory
- * that a precompiled version of the stylesheet (translet) may be available,
- * and that that should be used in preference to recompiling the stylesheet.
- * @author Morten Jorgensen
- * @author Jacek Ambroziak
- */
-public final class TransformServlet extends HttpServlet {
-
-    /**
-     * Main servlet entry point
-     */
-    public void doGet(HttpServletRequest request,
-		      HttpServletResponse response)
-	throws IOException, ServletException {
-
-	// Initialise the output writer
-	response.setContentType("text/html");
-	PrintWriter out = response.getWriter();
-
-	// Get the two paramters "class" and "source".
- String transletName = request.getParameter("class");
-	String documentURI  = request.getParameter("source");
-
-	try {
-	    if ((transletName == null) || (documentURI == null)) {
-	        out.println("<h1>XSL transformation error</h1>");
-		out.println("The parameters <b><tt>class</tt></b> and " +
-			    "<b><tt>source</tt></b> must be specified");
-	    }
-	    else {
-                TransformerFactory tf = TransformerFactory.newInstance();
-                try {
-                    tf.setAttribute("use-classpath", Boolean.TRUE);
-                } catch (IllegalArgumentException iae) {
-                    System.err.println(
-                           "Could not set XSLTC-specific TransformerFactory "
-                         + "attributes.  Transformation failed.");
-                }
-                Transformer t =
-                         tf.newTransformer(new StreamSource(transletName));
-
-		// Start the transformation
-		final long start = System.currentTimeMillis();
-		t.transform(new StreamSource(documentURI),
-                            new StreamResult(out));
-		final long done = System.currentTimeMillis() - start;
-		out.println("<!-- transformed by XSLTC in "+done+"msecs -->");
-	    }
-	}
-	catch (Exception e) {
-	    out.println("<h1>Error</h1>");
-	    out.println(e.toString());
-	}
-    }
-}
diff --git a/samples/DOM2DOM/DOM2DOM.java b/samples/DOM2DOM/DOM2DOM.java
deleted file mode 100644
index 8e9c82a4..00000000
--- a/samples/DOM2DOM/DOM2DOM.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
-
-import org.apache.xml.serializer.Serializer;
-import org.apache.xml.serializer.SerializerFactory;
-import org.apache.xml.serializer.OutputPropertiesFactory;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException; 
-
-  /**
-   * Show how to transform a DOM tree into another DOM tree.  
-   * This uses the javax.xml.parsers to parse both an XSL file 
-   * and the XML file into a DOM, and create an output DOM.
-   */
-public class DOM2DOM
-{
-	public static void main(String[] args)
-    throws TransformerException, TransformerConfigurationException, FileNotFoundException,
-           ParserConfigurationException, SAXException, IOException
-  {    
-	  TransformerFactory tFactory = TransformerFactory.newInstance();
-
-    if(tFactory.getFeature(DOMSource.FEATURE) && tFactory.getFeature(DOMResult.FEATURE))
-    {
-      //Instantiate a DocumentBuilderFactory.
-      DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
-
-      // And setNamespaceAware, which is required when parsing xsl files
-      dFactory.setNamespaceAware(true);
-      
-      //Use the DocumentBuilderFactory to create a DocumentBuilder.
-      DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
-      
-      //Use the DocumentBuilder to parse the XSL stylesheet.
-      Document xslDoc = dBuilder.parse("birds.xsl");
-
-      // Use the DOM Document to define a DOMSource object.
-      DOMSource xslDomSource = new DOMSource(xslDoc);
-
-      // Set the systemId: note this is actually a URL, not a local filename
-      xslDomSource.setSystemId("birds.xsl");
-
-      // Process the stylesheet DOMSource and generate a Transformer.
-      Transformer transformer = tFactory.newTransformer(xslDomSource);
-
-      //Use the DocumentBuilder to parse the XML input.
-      Document xmlDoc = dBuilder.parse("birds.xml");
-      
-      // Use the DOM Document to define a DOMSource object.
-      DOMSource xmlDomSource = new DOMSource(xmlDoc);
-      
-      // Set the base URI for the DOMSource so any relative URIs it contains can
-      // be resolved.
-      xmlDomSource.setSystemId("birds.xml");
-      
-      // Create an empty DOMResult for the Result.
-      DOMResult domResult = new DOMResult();
-  
-  	  // Perform the transformation, placing the output in the DOMResult.
-      transformer.transform(xmlDomSource, domResult);
-	  
-	    //Instantiate an Xalan XML serializer and use it to serialize the output DOM to System.out
-	    // using the default output format, except for indent="yes"
-      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
-      xmlProps.setProperty("indent", "yes");
-      xmlProps.setProperty("standalone", "no");
-      Serializer serializer = SerializerFactory.getSerializer(xmlProps);                             
-      serializer.setOutputStream(System.out);
-      serializer.asDOMSerializer().serialize(domResult.getNode());
-	}
-    else
-    {
-      throw new org.xml.sax.SAXNotSupportedException("DOM node processing not supported!");
-    }
-  }
-}
diff --git a/samples/Pipe/Pipe.java b/samples/Pipe/Pipe.java
deleted file mode 100644
index 798c243f..00000000
--- a/samples/Pipe/Pipe.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.xml.serializer.Serializer;
-import org.apache.xml.serializer.SerializerFactory;
-import org.apache.xml.serializer.OutputPropertiesFactory;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-  /**
-   * This example shows how to chain a series of transformations by
-   * piping SAX events from one Transformer to another. Each Transformer
-   * operates as a SAX2 XMLFilter/XMLReader.
-   */
-public class Pipe
-{
-	public static void main(String[] args)
-	throws TransformerException, TransformerConfigurationException, 
-         SAXException, IOException	   
-	{
-    // Instantiate  a TransformerFactory.
-  	TransformerFactory tFactory = TransformerFactory.newInstance();
-    // Determine whether the TransformerFactory supports The use uf SAXSource 
-    // and SAXResult
-    if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE))
-    { 
-      // Cast the TransformerFactory to SAXTransformerFactory.
-      SAXTransformerFactory saxTFactory = ((SAXTransformerFactory) tFactory);	  
-      // Create a TransformerHandler for each stylesheet.
-      TransformerHandler tHandler1 = saxTFactory.newTransformerHandler(new StreamSource("foo1.xsl"));
-      TransformerHandler tHandler2 = saxTFactory.newTransformerHandler(new StreamSource("foo2.xsl"));
-      TransformerHandler tHandler3 = saxTFactory.newTransformerHandler(new StreamSource("foo3.xsl"));
-    
-      // Create an XMLReader.
-	    XMLReader reader = XMLReaderFactory.createXMLReader();
-      reader.setContentHandler(tHandler1);
-      reader.setProperty("http://xml.org/sax/properties/lexical-handler", tHandler1);
-
-      tHandler1.setResult(new SAXResult(tHandler2));
-      tHandler2.setResult(new SAXResult(tHandler3));
-
-      // transformer3 outputs SAX events to the serializer.
-      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
-      xmlProps.setProperty("indent", "yes");
-      xmlProps.setProperty("standalone", "no");
-      Serializer serializer = SerializerFactory.getSerializer(xmlProps);
-      serializer.setOutputStream(System.out);
-      tHandler3.setResult(new SAXResult(serializer.asContentHandler()));
-
-	    // Parse the XML input document. The input ContentHandler and output ContentHandler
-      // work in separate threads to optimize performance.   
-      reader.parse("foo.xml");
-    }
-  }
-}
diff --git a/samples/SAX2SAX/SAX2SAX.java b/samples/SAX2SAX/SAX2SAX.java
deleted file mode 100644
index bbcd4022..00000000
--- a/samples/SAX2SAX/SAX2SAX.java
+++ /dev/null
@@ -1,108 +0,0 @@
-
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-/**
- *  Replicate the SimpleTransform sample, explicitly using the SAX model to handle the
- *  stylesheet, the XML input, and the transformation.
- */
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import javax.xml.transform.Result;
-import javax.xml.transform.Templates;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TemplatesHandler;
-import javax.xml.transform.sax.TransformerHandler;
-
-import org.apache.xml.serializer.Serializer;
-import org.apache.xml.serializer.SerializerFactory;
-import org.apache.xml.serializer.OutputPropertiesFactory;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-
-public class SAX2SAX
-{
-  public static void main(String[] args)
-	throws TransformerException, TransformerConfigurationException, 
-         SAXException, IOException	   
-	{
-
-    // Instantiate a TransformerFactory.
-  	TransformerFactory tFactory = TransformerFactory.newInstance();
-    // Determine whether the TransformerFactory supports The use of SAXSource 
-    // and SAXResult
-    if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE))
-    { 
-      // Cast the TransformerFactory.
-      SAXTransformerFactory saxTFactory = ((SAXTransformerFactory) tFactory);
-      // Create a ContentHandler to handle parsing of the stylesheet.
-      TemplatesHandler templatesHandler = saxTFactory.newTemplatesHandler();
-
-      // Create an XMLReader and set its ContentHandler.
-      XMLReader reader = XMLReaderFactory.createXMLReader();
-      reader.setContentHandler(templatesHandler);
-    
-      // Parse the stylesheet.                       
-      reader.parse("birds.xsl");
-
-      //Get the Templates object from the ContentHandler.
-      Templates templates = templatesHandler.getTemplates();
-      // Create a ContentHandler to handle parsing of the XML source.  
-      TransformerHandler handler 
-        = saxTFactory.newTransformerHandler(templates);
-      // Reset the XMLReader's ContentHandler.
-      reader.setContentHandler(handler);  
-
-      // Set the ContentHandler to also function as a LexicalHandler, which
-      // includes "lexical" events (e.g., comments and CDATA). 
-      reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
-      
-   	  FileOutputStream fos = new FileOutputStream("birds.out");
-      
-      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
-      xmlProps.setProperty("indent", "yes");
-      xmlProps.setProperty("standalone", "no");      
-      Serializer serializer = SerializerFactory.getSerializer(xmlProps);
-      serializer.setOutputStream(fos);
-   
-      
-      // Set the result handling to be a serialization to the file output stream.
-      Result result = new SAXResult(serializer.asContentHandler());
-      handler.setResult(result);
-      
-      // Parse the XML input document.
-      reader.parse("birds.xml");
-      
-    	System.out.println("************* The result is in birds.out *************");	
-    }	
-    else
-      System.out.println("The TransformerFactory does not support SAX input and SAX output");
-  }
-}
diff --git a/samples/SimpleTransform/SimpleTransform.java b/samples/SimpleTransform/SimpleTransform.java
deleted file mode 100644
index fbb1ca0c..00000000
--- a/samples/SimpleTransform/SimpleTransform.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-/**
- *  Use the TraX interface to perform a transformation in the simplest manner possible
- *  (3 statements).
- */
-public class SimpleTransform
-{
-	public static void main(String[] args)
-    throws TransformerException, TransformerConfigurationException, 
-           FileNotFoundException, IOException
-  {  
-  // Use the static TransformerFactory.newInstance() method to instantiate 
-  // a TransformerFactory. The javax.xml.transform.TransformerFactory 
-  // system property setting determines the actual class to instantiate --
-  // org.apache.xalan.transformer.TransformerImpl.
-	TransformerFactory tFactory = TransformerFactory.newInstance();
-	
-	// Use the TransformerFactory to instantiate a Transformer that will work with  
-	// the stylesheet you specify. This method call also processes the stylesheet
-  // into a compiled Templates object.
-	Transformer transformer = tFactory.newTransformer(new StreamSource("birds.xsl"));
-
-	// Use the Transformer to apply the associated Templates object to an XML document
-	// (foo.xml) and write the output to a file (foo.out).
-	transformer.transform(new StreamSource("birds.xml"), new StreamResult(new FileOutputStream("birds.out")));
-	
-	System.out.println("************* The result is in birds.out *************");
-  }
-}
diff --git a/samples/Trace/Trace.java b/samples/Trace/Trace.java
deleted file mode 100644
index 05d90e77..00000000
--- a/samples/Trace/Trace.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.xalan.trace.PrintTraceListener;
-import org.apache.xalan.trace.TraceManager;
-import org.apache.xalan.transformer.TransformerImpl;
-
-/**
- * Sample for demonstrating Xalan "trace" interface.
- * Usage: run in Trace directory: java Trace
- * For an extensions trace sample, run in extensions
- * directory: java Trace 3-java-namespace
- */
-public class Trace
-{	
-  public static void main (String[] args)
-	  throws java.io.IOException, 
-			 TransformerException, TransformerConfigurationException,
-			 java.util.TooManyListenersException, 
-			 org.xml.sax.SAXException			 
-  {
-    String fileName = "foo";
-    if (args.length > 0)
-      fileName = args[0];
-
-    // Set up a PrintTraceListener object to print to a file.
-    java.io.FileWriter fw = new java.io.FileWriter("events.log");  
-    java.io.PrintWriter pw = new java.io.PrintWriter(fw, true);
-    PrintTraceListener ptl = new PrintTraceListener(pw);
-
-    // Print information as each node is 'executed' in the stylesheet.
-    ptl.m_traceElements = true;
-    // Print information after each result-tree generation event.
-    ptl.m_traceGeneration = true;
-    // Print information after each selection event.
-    ptl.m_traceSelection = true;
-    // Print information whenever a template is invoked.
-    ptl.m_traceTemplates = true;
-    // Print information whenever an extension call is made.
-    ptl.m_traceExtension = true;
-
-    // Set up the transformation    
-   	TransformerFactory tFactory = TransformerFactory.newInstance();
-    Transformer transformer = tFactory.newTransformer(new StreamSource(fileName + ".xsl"));
-
-    // Cast the Transformer object to TransformerImpl.
-    if (transformer instanceof TransformerImpl) 
-	  {
-      TransformerImpl transformerImpl = (TransformerImpl)transformer;
-      // Register the TraceListener with a TraceManager associated 
-      // with the TransformerImpl.
-      TraceManager trMgr = transformerImpl.getTraceManager();
-      trMgr.addTraceListener(ptl);
-                     
-      // Perform the transformation --printing information to
-      // the events log during the process.
-      transformer.transform
-                         ( new StreamSource(fileName + ".xml"), 
-                           new StreamResult(new java.io.FileWriter(fileName + ".out")) );
-    }
-    // Close the PrintWriter and FileWriter.
-    pw.close();
-    fw.close();
-   	System.out.println("**The output is in " + fileName + ".out; the log is in events.log ****");	
-    
-  }
-}
diff --git a/samples/TransformThread/TransformThread.java b/samples/TransformThread/TransformThread.java
deleted file mode 100644
index 3146fb42..00000000
--- a/samples/TransformThread/TransformThread.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Properties;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * What it does: this sample creates multiple threads 
- * and runs them. Each thread will be assigned a particular
- * stylesheet. Each thread will run multiple transformations on
- * various xml files using its own transformer.
- * 
- * Note: the flavors used by the transformations can be
- * configured below by changing SOURCE_FLAVOR and
- * RESULT_FLAVOR. XSLTC can also be used by changing
- * USE_XSLTC.
- * 
- * Description of files included with the sample:
- * 
- * foo0.xsl and foo1.xsl: foo0.xsl is the stylesheet used 
- * for transformations by thread #0, foo1.xsl is the stylesheet
- * used by thread #1.
- * 
- * foo0.xml and foo1.xml: foo0.xml and foo1.xml are the XML
- * files used for the first and second transformations done
- * by each thread.
- * 
- * Output will go to *.out files in the TransformThread directory.
- * 
- * @author <a href="mailto:richcao@ca.ibm.com">Richard Cao</a>
- */
-public class TransformThread implements Runnable
-{    
-  // Flavors
-  public final static int STREAM = 0;
-  public final static int SAX = 1;
-  public final static int DOM = 2;
-  public final static String[] flavorNames =
-    new String[] { "Stream", "SAX", "DOM" };
-
-  // Configurable options
-  private static int SOURCE_FLAVOR = STREAM;
-    // private static int SOURCE_FLAVOR = SAX;
-    // private static int SOURCE_FLAVOR = DOM;
-    
-  private static int RESULT_FLAVOR = STREAM;
-    // private static int RESULT_FLAVOR = SAX;
-    // private static int RESULT_FLAVOR = DOM;
-  
-  private static boolean USE_XSLTC = false;
-    // private static boolean useXSLTC = true;
-
-
-  // Threads
-  private final static int NUM_THREADS = 2;
-  private static TransformThread INSTANCES[] = null;
-  protected Thread m_thread = null;
-  
-  // Number of transformations per thread
-  private final static int NUM_TRANSFORMATIONS = 2;
-
-  // Files names and extensions
-  private final static String XML_IN_BASE = "foo";
-  private final static String XML_EXT = ".xml";
-  private final static String XSL_IN_BASE = "foo";
-  private final static String XSL_EXT = ".xsl";
-  private final static String FILE_OUT_BASE = "foo_";
-  private final static String FILE_OUT_EXT = ".out";
-
-  // Thread identifier
-  private int m_thrdNum = -1;
-
-  private InputStream[] m_inStream = null;
-
-  private Source[] m_inSource = null;
-  private Result[] m_outResult = null;
-
-  // One Transformer per thread since Transformers
-  // are _NOT_ thread-safe
-  private Transformer m_transformer = null;
-
-  /** Constructs the TransformThread object
-   * @param thrdNum a unique identifier for this object
-   */
-  public TransformThread(int thrdNum)
-  {
-    m_thrdNum = thrdNum;
-
-    m_inStream = new InputStream[NUM_TRANSFORMATIONS];
-    m_inSource = new Source[NUM_TRANSFORMATIONS];
-    m_outResult = new Result[NUM_TRANSFORMATIONS];
-
-    try
-    {
-      initSource();
-      initResult();
-
-      // ensure xslSourceURI is a valid URI
-      final String xslSourceFileName = XSL_IN_BASE + m_thrdNum + XSL_EXT;
-      final String xslSourceURI = (new File(xslSourceFileName)).toURL().toString();
-      StreamSource xslSource = new StreamSource(xslSourceFileName);
-      xslSource.setSystemId(xslSourceURI);
-      
-      // Initialize the tranformer
-      m_transformer =
-        TransformerFactory.newInstance().newTransformer(xslSource);
-      m_thread = new Thread(this);
-    }
-    catch (Throwable e)
-    {
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-
-  /** Initialize the results (m_outResult) according
-   * to RESULT_FLAVOR
-   */
-  private void initResult()
-  {
-    try 
-    {
-      for (int i = 0; i < NUM_TRANSFORMATIONS; i++)
-      {
-        switch (RESULT_FLAVOR) 
-        {
-          case STREAM :
-              OutputStream outStream =
-                new FileOutputStream(FILE_OUT_BASE + "thread_" 
-                  + m_thrdNum + "_transformation_" + i + FILE_OUT_EXT);
-                
-              m_outResult[i] = new StreamResult(outStream);
-            break;
-
-          case SAX :
-            DefaultHandler defaultHandler = new DefaultHandler();
-            m_outResult[i] = new SAXResult(defaultHandler);
-            break;
-
-          case DOM :
-            m_outResult[i] = new DOMResult();
-            break;
-        }  
-      }
-    }
-    catch (Exception e)
-    { 
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-
-  /** Initialize the sources (m_inSource) according
-   * to SOURCE_FLAVOR
-   */
-  private void initSource()
-  {
-    try 
-    {
-      for (int i = 0; i < NUM_TRANSFORMATIONS; i++)
-      {
-        // Ensure we get a valid URI
-        final String sourceXMLURI = (new File(XML_IN_BASE + i + XML_EXT)).toURL().toString();
-        
-        // Open for input
-        m_inStream[i] = new FileInputStream(XML_IN_BASE + i + XML_EXT);
-        
-        switch (SOURCE_FLAVOR)
-        {
-          case STREAM :
-            m_inSource[i] = new StreamSource(m_inStream[i]);
-            break;
-  
-          case SAX :
-            m_inSource[i] = new SAXSource(new InputSource(m_inStream[i]));
-            break;
-  
-          case DOM :
-            try
-            {
-              DocumentBuilderFactory dfactory =
-                DocumentBuilderFactory.newInstance();
-  
-              // Must always setNamespaceAware when 
-              // building xsl stylesheets
-              dfactory.setNamespaceAware(true);
-              m_inSource[i] =
-                new DOMSource(dfactory.newDocumentBuilder().parse(m_inStream[i]));
-            }
-            catch (Exception e)
-            {
-              e.printStackTrace();
-            }
-            break;
-        }
-  
-        if (m_inSource[i] != null)
-        {
-          // If we don't do this, the transformer 
-          // won't know how to resolve relative URLs 
-          // in the stylesheet.
-          m_inSource[i].setSystemId(sourceXMLURI);
-        }
-      }
-    }
-    catch (Exception e)
-    { 
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-
-  /**
-   * @see java.lang.Runnable#run()
-   */
-  public void run()
-  {
-    try
-    {
-      // Perform multiple transformations with the same
-      // transformer
-      for (int i = 0; i < NUM_TRANSFORMATIONS; i++)
-      {
-        m_transformer.transform(m_inSource[i], m_outResult[i]);
-      }
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-
-  /** Creates thread instances
-   */
-  private static void initThreads()
-  {
-    INSTANCES = new TransformThread[NUM_THREADS];
-
-    for (int count = 0; count < NUM_THREADS; count++)
-    {
-      INSTANCES[count] = new TransformThread(count);
-    }
-  }
-  
-  /** Sets the appropriate system properties if XSLTC is
-   * to be used (according to USE_XSLTC)
-   */
-  private static void initSystemProperties()
-  {
-    if (USE_XSLTC) 
-    {
-      // Set the TransformerFactory system property if XSLTC is required
-      // Note: To make this sample more flexible, load properties from a properties file.
-      // The setting for the Xalan Transformer is "org.apache.xalan.processor.TransformerFactoryImpl"
-      String key = "javax.xml.transform.TransformerFactory";
-      String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
-      Properties props = System.getProperties();
-      props.put(key, value); 
-      System.setProperties(props);
-    }
-  }
-
-  /**
-   * Usage:
-   * java TransformThread
-   */
-  public static void main(String argv[])
-  {
-    try
-    { 
-      initSystemProperties();
-      initThreads();
-
-      for (int count = 0; count < NUM_THREADS; count++)
-      {
-        INSTANCES[count].m_thread.start();
-      }
-    }
-    catch (Throwable e)
-    {
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-}
diff --git a/samples/UseStylesheetPI/UseStylesheetPI.java b/samples/UseStylesheetPI/UseStylesheetPI.java
deleted file mode 100644
index 0e2ee982..00000000
--- a/samples/UseStylesheetPI/UseStylesheetPI.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;	
-
-public class UseStylesheetPI
-{
-  public static void main(String[] args)
-	  throws TransformerException, TransformerConfigurationException
-	{
-	  String media= null , title = null, charset = null;
-	  try
-	  {	
-    	TransformerFactory tFactory = TransformerFactory.newInstance();
-      Source stylesheet = tFactory.getAssociatedStylesheet
-        (new StreamSource("fooX.xml"),media, title, charset);
-      
-      Transformer transformer = tFactory.newTransformer(stylesheet);
-        
-		   transformer.transform(new StreamSource("fooX.xml"), 
-                             new StreamResult(new java.io.FileOutputStream("foo.out")));
-       
-      System.out.println("************* The result is in foo.out *************");
-       
-	  }
-  	  catch (Exception e)
-	  {
-	    e.printStackTrace();
-	  }
-  }
-}
diff --git a/samples/UseStylesheetParam/UseStylesheetParam.java b/samples/UseStylesheetParam/UseStylesheetParam.java
deleted file mode 100644
index 24b655c1..00000000
--- a/samples/UseStylesheetParam/UseStylesheetParam.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.xml.sax.SAXException;
-
-  /**
-   * Use command-line input as a stylesheet parameter.
-   */
-
-public class UseStylesheetParam
-{
-  public static void main(String[] args)
-	throws TransformerException, TransformerConfigurationException, 
-         SAXException, IOException	   
-	{
-    if(args.length != 1)
-    {
-      System.err.println("Please pass one string to this program");
-      return;
-    }
-  	// Get the parameter value from the command line.
-    String paramValue = args[0];
-	
-   	TransformerFactory tFactory = TransformerFactory.newInstance();
-    Transformer transformer = tFactory.newTransformer(new StreamSource("foo.xsl"));
-
-	// Set the parameter. I can't get non-null namespaces to work!!
-    transformer.setParameter("param1",	/* parameter name */
-               							 paramValue /* parameter value */ );
-    
-    transformer.transform(new StreamSource("foo.xml"), new StreamResult(new OutputStreamWriter(System.out)));
-  }   
-}
diff --git a/samples/UseXMLFilters/UseXMLFilters.java b/samples/UseXMLFilters/UseXMLFilters.java
deleted file mode 100644
index 10b90939..00000000
--- a/samples/UseXMLFilters/UseXMLFilters.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.IOException;
-
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.xml.serializer.Serializer;
-import org.apache.xml.serializer.SerializerFactory;
-import org.apache.xml.serializer.OutputPropertiesFactory;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLFilter;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-  /**
-   * This example shows how to chain a series of transformations by
-   * piping SAX events from one Transformer to another. Each Transformer
-   * operates as a SAX2 XMLFilter/XMLReader.
-   */
-public class UseXMLFilters
-{
-  public static void main(String[] args)
-	throws TransformerException, TransformerConfigurationException, 
-         SAXException, IOException	   
-	{
-    // Instantiate  a TransformerFactory.
-  	TransformerFactory tFactory = TransformerFactory.newInstance();
-    // Determine whether the TransformerFactory supports The use uf SAXSource 
-    // and SAXResult
-    if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE))
-    { 
-      // Cast the TransformerFactory to SAXTransformerFactory.
-      SAXTransformerFactory saxTFactory = ((SAXTransformerFactory) tFactory);
-  	  // Create an XMLFilter for each stylesheet.
-      XMLFilter xmlFilter1 = saxTFactory.newXMLFilter(new StreamSource("foo1.xsl"));
-      XMLFilter xmlFilter2 = saxTFactory.newXMLFilter(new StreamSource("foo2.xsl"));
-      XMLFilter xmlFilter3 = saxTFactory.newXMLFilter(new StreamSource("foo3.xsl"));
-    
-      // Create an XMLReader.
-	    XMLReader reader = XMLReaderFactory.createXMLReader();
-    
-      // xmlFilter1 uses the XMLReader as its reader.
-      xmlFilter1.setParent(reader);
-    
-      // xmlFilter2 uses xmlFilter1 as its reader.
-      xmlFilter2.setParent(xmlFilter1);
-    
-      // xmlFilter3 uses xmlFilter2 as its reader.
-      xmlFilter3.setParent(xmlFilter2);
-    
-      // xmlFilter3 outputs SAX events to the serializer.
-      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
-      xmlProps.setProperty("indent", "yes");
-      xmlProps.setProperty("standalone", "no"); 
-      Serializer serializer = SerializerFactory.getSerializer(xmlProps);                      
-      serializer.setOutputStream(System.out);
-      xmlFilter3.setContentHandler(serializer.asContentHandler());
-
-  	  // Perform the series of transformations as follows:
-	    //   - transformer3 gets its parent (transformer2) as the XMLReader/XMLFilter
-	    //     and calls transformer2.parse(new InputSource("foo.xml")).
-      //   - transformer2 gets its parent (transformer1) as the XMLReader/XMLFilter
-	    //     and calls transformer1.parse(new InputSource("foo.xml")). 
-      //   - transformer1 gets its parent (reader, a SAXParser) as the XMLReader 
-      //     and calls reader.parse(new InputSource("foo.xml")).
-	    //   - reader parses the XML document and sends the SAX parse events to transformer1, 
-	    //     which performs transformation 1 and sends the output to transformer2.
-  	  //   - transformer2 parses the transformation 1 output, performs transformation 2, and 
-	    //     sends the output to transformer3.
-	    //   - transformer3 parses the transformation 2 output, performs transformation 3,
-  	  //     and sends the output to the serializer.
-      xmlFilter3.parse(new InputSource("foo.xml"));
-    }
-  }
-}
diff --git a/samples/Validate/Validate.java b/samples/Validate/Validate.java
deleted file mode 100644
index 5756d0f4..00000000
--- a/samples/Validate/Validate.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.FilenameFilter;
-import java.io.IOException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.DefaultHandler;
-
-/* Use JAXP SAXParser to parse 1 .xml file or all the .xml files in a directory.
- * Takes 1 or 2 command-line arguments:
- *   Argument 1 (required) is a file name or directory name.
- *   Argument 2 (optional) is a log file name. If ommitted, messages are written to screen.
- */
-public class Validate
-{
-  static int numXMLFiles = 0;
-  static int numValidFiles = 0;
-  static int numInvalidFiles = 0;
-  static int numFilesMissingDoctype = 0;
-  static int numMalformedFiles = 0;
-  static boolean useLogFile = false;
-  static StringBuffer buff = new StringBuffer();
-
-  public static void main(String[] args)
-    throws FileNotFoundException, IOException, ParserConfigurationException, SAXException
-  {
-    if (args.length == 0 || args.length > 2)
-    {
-      System.out.println("\nEnter 'java validate -help' for information about running Validate");
-      return;
-    }
-    if (args[0].toLowerCase().equals("-help"))
-    { 
-      String sep = "\n====================================================\n";
-      String a = "Validate uses Xerces to parse the xml files in the directory you specify or the individual xml file you specify. The parser validates each document (checks that it conforms to its DOCTYPE).\n";
-      String b = "Each xml file should contain a DOCTYPE declaration.\n\n";
-      String c = "Validate takes 1 or 2 arguments:\n";
-      String d = " Argument 1 specifies a directory or an individual xml file.\n";
-      String e = " Argument 2 specifies a log file. If you include this argument, Validate appends messages to this file. If you do not, Validate writes messages to the screen.\n";
-      System.out.println(sep+a+b+c+d+e+sep);
-      return;
-    }    
-    try
-    {
-      Validate v = new Validate();
-      v.validate(args);
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }    
-  }
-  
-  void validate(String[] args)
-    throws FileNotFoundException, IOException, ParserConfigurationException, SAXException
-  {
-    File dir = new File(args[0]);
-   
-    // User may include a 2nd argument for the log file. 
-    useLogFile = (args.length == 2);
-   
-    if (dir.isFile()) // Just checking one file.
-    {
-      parse(null,args[0]);
-    }
-    else if (dir.isDirectory())  // Checking the contents of a directory.
-    {
-      // Only interested in .xml files.
-      XMLFileFilter filter = new XMLFileFilter();
-      String [] files = dir.list(filter);
-      for (int i = 0; i <files.length; i++)
-      { 
-        parse(dir.toString(),files[i]); // All the work is done here.
-        
-        if (!useLogFile) 
-        // Write messages to screen after parsing each file.
-        {
-          System.out.print(buff.toString());
-          buff = new StringBuffer();
-        }
-      }
-    }
-    else // Command-line argument is no good!
-    {
-      System.out.println(args[0] + " not found!");
-      return;
-    }
-    // Provide user with a summary.
-    buff.append("================SUMMARY=============================\n");
-    if (numXMLFiles > 1)
-      buff.append("Parsed " + numXMLFiles + " .xml files in " +  args[0] + ".\n");
-    if (numValidFiles > 1)
-      buff.append( numValidFiles + " files are valid.\n");
-    else if (numValidFiles == 1)
-      buff.append( numValidFiles + " file is valid.\n");
-    if (numInvalidFiles > 1)
-      buff.append(numInvalidFiles + " files are not valid.\n");
-    else if (numInvalidFiles == 1)
-      buff.append( numInvalidFiles + " file is not valid.\n");
-    if (numMalformedFiles > 1)
-      buff.append(numMalformedFiles + " files are not well-formed.\n");
-    else if (numMalformedFiles == 1)
-      buff.append( numMalformedFiles + " file is not well-formed.\n");
-    if (numFilesMissingDoctype > 1)
-      buff.append(numFilesMissingDoctype + " files do not contain a DOCTYPE declaration.\n");
-    else if (numFilesMissingDoctype == 1)
-      buff.append(numFilesMissingDoctype + " file does not contain a DOCTYPE declaration.\n");
-     
-    if (!useLogFile)
-      System.out.print(buff.toString());
-    else
-    {
-      // If log file exists, append.
-      FileWriter writer = new FileWriter(args[1], true);
-      writer.write(new java.util.Date().toString()+ "\n");
-      writer.write(buff.toString());
-      writer.close();     
-      System.out.println("Done with validation. See " + args[1] + ".");
-    }
-  }
-  
-  // Parse each XML file.
-  void parse(String dir, String filename)
-     throws FileNotFoundException, IOException, ParserConfigurationException, SAXException
-  {
-    try 
-    {
-      File f = new File(dir, filename);
-      StringBuffer errorBuff = new StringBuffer();
-      InputSource input = new InputSource(new FileInputStream(f));
-      // Set systemID so parser can find the dtd with a relative URL in the source document.
-      input.setSystemId(f.toString());
-      SAXParserFactory spfact = SAXParserFactory.newInstance();
-       
-      spfact.setValidating(true);
-      spfact.setNamespaceAware(true);
-            
-      SAXParser parser = spfact.newSAXParser();
-      XMLReader reader = parser.getXMLReader();
-      
-      //Instantiate inner-class error and lexical handler.
-      Handler handler = new Handler(filename, errorBuff);
-      reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
-      parser.parse(input, handler);
-
-      if (handler.containsDTD && !handler.errorOrWarning) // valid
-      {
-        buff.append("VALID " + filename +"\n");
-        numValidFiles++;
-      }
-      else if (handler.containsDTD) // not valid
-      {
-        buff.append ("NOT VALID " + filename + "\n");
-        buff.append(errorBuff.toString());
-        numInvalidFiles++;
-      }
-      else // no DOCTYPE to use for validation
-      {
-        buff.append("NO DOCTYPE DECLARATION " + filename + "\n");
-        numFilesMissingDoctype++;
-      }
-    }
-    catch (Exception e) // Serious problem!
-    {
-      buff.append("NOT WELL-FORMED " + filename + ". " + e.getMessage() + "\n");
-      numMalformedFiles++;
-    }
-    finally
-    {
-      numXMLFiles++;
-    }
-  }
-  // Inner classes
-  
-  // Only interested in parsing .xml files.
-  class XMLFileFilter implements FilenameFilter
-  {
-    public boolean accept(File dir, String fileName)
-    {
-      return fileName.toLowerCase().endsWith(".xml") && new File(dir.toString(),fileName).isFile();
-    }
-  }
-  
-  // Catch any errors or warnings, and verify presence of doctype statement.
-  class Handler extends DefaultHandler implements LexicalHandler
-  {
-    boolean errorOrWarning;
-    boolean containsDTD;
-    String sourceFile;
-    StringBuffer errorBuff;  
-  
-    Handler(String sourceFile, StringBuffer errorBuff)
-    {
-      super();
-      this.sourceFile = sourceFile;
-      this.errorBuff = errorBuff;
-      errorOrWarning = false;
-      containsDTD = false;
-    }
-    
-    public void error(SAXParseException exc)
-    {
-      errorBuff.append(sourceFile + " Error: " + exc.getMessage()+ "\n");    
-      errorOrWarning = true;
-    }
-    public void warning(SAXParseException exc)
-    {
-      errorBuff.append(sourceFile + " Warning:" + exc.getMessage()+ "\n");   
-      errorOrWarning = true;
-    }
-
-    // LexicalHandler methods; all no-op except startDTD().
-    
-    // Set containsDTD to true when startDTD event occurs.
-    public void startDTD (String name, String publicId, String systemId)
-	    throws SAXException
-    {
-      containsDTD = true;
-    }
- 
-    public void endDTD () throws SAXException
-    {}  
-  
-    public void startEntity (String name) throws SAXException
-    {}
-  
-    public void endEntity (String name) throws SAXException
-    {}
-  
-    public void startCDATA () throws SAXException
-    {}
-  
-    public void endCDATA () throws SAXException
-    {}
-  
-    public void comment (char ch[], int start, int length) throws SAXException
-    {}
-  }
-}
diff --git a/samples/Validate/ValidateXMLInput.java b/samples/Validate/ValidateXMLInput.java
deleted file mode 100644
index bbf3dc7b..00000000
--- a/samples/Validate/ValidateXMLInput.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Validate the XML input by using SAXParserFactory to turn on namespace awareness and 
- * validation, and a SAX XMLReader to parse the input and report problems to an error 
- * handler.
- * 
- * This sample uses birds.xml with an internal DOCTYPE declaration. As shipped, birds.xml
- * contains an element that violates the declared document type.
- */
-public class ValidateXMLInput
-{
-  
-  public static void main(String[] args) 
-    throws Exception
-  {
-    ValidateXMLInput v = new ValidateXMLInput();
-    v.validate();
-  }
-
-  void validate()
-    throws Exception
-   {
-     // Since we're going to use a SAX feature, the transformer must support 
-    // input in the form of a SAXSource.
-    TransformerFactory tfactory = TransformerFactory.newInstance();
-    if(tfactory.getFeature(SAXSource.FEATURE))
-    {
-      // Standard way of creating an XMLReader in JAXP 1.1.
-      SAXParserFactory pfactory= SAXParserFactory.newInstance();
-      pfactory.setNamespaceAware(true); // Very important!
-      // Turn on validation.
-      pfactory.setValidating(true);
-      // Get an XMLReader.
-      XMLReader reader = pfactory.newSAXParser().getXMLReader();
-  
-      // Instantiate an error handler (see the Handler inner class below) that will report any
-      // errors or warnings that occur as the XMLReader is parsing the XML input.
-      Handler handler = new Handler();
-      reader.setErrorHandler(handler);
-  
-      // Standard way of creating a transformer from a URL.
-      Transformer t = tfactory.newTransformer(
-        new StreamSource("birds.xsl"));
-      
-      // Specify a SAXSource that takes both an XMLReader and a URL.
-      SAXSource source = new SAXSource(reader,
-        new InputSource("birds.xml"));
-      
-      // Transform to a file.
-      try
-      {
-        t.transform(source, new StreamResult("birds.out"));
-      }
-      catch (TransformerException te)
-      {
-        // The TransformerException wraps someting other than a SAXParseException
-        // warning or error, either of which should be "caught" by the Handler.
-        System.out.println("Not a SAXParseException warning or error: " + te.getMessage());
-      }
-                                  
-      System.out.println("=====Done=====");
-    }
-    else
-      System.out.println("tfactory does not support SAX features!");
-  }
-
-  // Catch any errors or warnings from the XMLReader.
-  class Handler extends DefaultHandler
-  {
-    public void warning (SAXParseException spe)
-	     throws SAXException
-    {
-      System.out.println("SAXParseException warning: " + spe.getMessage());
-    }    
-
-    public void error (SAXParseException spe)
-    	throws SAXException
-    {
-      System.out.println("SAXParseException error: " + spe.getMessage());
-    }     
-  }
-}
diff --git a/samples/XPathAPI/ApplyXPathJAXP.java b/samples/XPathAPI/ApplyXPathJAXP.java
deleted file mode 100644
index 0bba26fa..00000000
--- a/samples/XPathAPI/ApplyXPathJAXP.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * 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.
- */
-
-import java.io.OutputStreamWriter;
-
-import javax.xml.namespace.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.xpath.*;
-import org.xml.sax.*;
-import org.w3c.dom.*;
-
-/**
- * JAXP 1.3 XPath API sample.
- * 
- * Basic utility for applying an XPath expression to an input xml file and printing
- * the evaluation result, using JAXP 1.3 XPath API.
- * 
- * Takes 3 arguments:
- * (1) an xml file name
- * (2) an XPath expression to apply to the input document
- * (3) the return type, which is one of the following Strings:
- *     num, bool, str, node, nodeset
- * 
- * Examples:
- * 	java ApplyXPathJAXP foo.xml /doc/name[1]/@last str
- * 	java ApplyXPathJAXP foo.xml /doc/name nodeset
- */
-public class ApplyXPathJAXP
-{
-    public static void main(String[] args)
-    {
-    	QName returnType = null;
-    	
-        if (args.length != 3)
-        {
-            System.err.println("Usage: java ApplyXPathAPI xml_file xpath_expression type");
-        }
-        
-        InputSource xml = new InputSource(args[0]);
-        String expr = args[1];
-        
-        // set the return type
-        if (args[2].equals("num")) returnType = XPathConstants.NUMBER;
-        else if (args[2].equals("bool")) returnType = XPathConstants.BOOLEAN;
-        else if (args[2].equals("str")) returnType = XPathConstants.STRING;
-        else if (args[2].equals("node")) returnType = XPathConstants.NODE;
-        else if (args[2].equals("nodeset")) returnType = XPathConstants.NODESET;
-        else
-          System.err.println("Invalid return type: " + args[2]);
-        
-        // Create a new XPath
-        XPathFactory factory = XPathFactory.newInstance();
-        XPath xpath = factory.newXPath();
-        
-        Object result = null;
-        try {
-          // compile the XPath expression
-          XPathExpression xpathExpr = xpath.compile(expr);
-          
-          // Evaluate the XPath expression against the input document
-          result = xpathExpr.evaluate(xml, returnType);
-          
-          // Print the result to System.out.
-          printResult(result);
-        }
-        catch (Exception e) {
-          e.printStackTrace();
-        }        
-    }
-    
-    /**
-     * Print the type and value of the evaluation result.
-     */
-    static void printResult(Object result)
-      throws Exception
-    {
-        if (result instanceof Double) {
-            System.out.println("Result type: double");
-            System.out.println("Value: " + result);
-        }
-        else if (result instanceof Boolean) {
-            System.out.println("Result type: boolean");
-            System.out.println("Value: " + ((Boolean)result).booleanValue());
-        }	
-        else if (result instanceof String) {
-            System.out.println("Result type: String");
-             System.out.println("Value: " + result);
-        }
-        else if (result instanceof Node) {
-            Node node = (Node)result;
-            System.out.println("Result type: Node");
-            System.out.println("<output>");
-            printNode(node);
-            System.out.println("</output>");
-        }
-        else if (result instanceof NodeList) {
-            NodeList nodelist = (NodeList)result;
-            System.out.println("Result type: NodeList");
-            System.out.println("<output>");
-            printNodeList(nodelist);
-            System.out.println("</output>");
-        }
-    }
-
-    /** Decide if the node is text, and so must be handled specially */
-    static boolean isTextNode(Node n) 
-    {
-      if (n == null)
-        return false;
-      short nodeType = n.getNodeType();
-      return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.TEXT_NODE;
-    }
-    
-    static void printNode(Node node) 
-      throws Exception
-    {
-      if (isTextNode(node)) {
-        System.out.println(node.getNodeValue());       
-      }
-      else {
-        // Set up an identity transformer to use as serializer.
-        Transformer serializer = TransformerFactory.newInstance().newTransformer();
-        serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-        serializer.transform(new DOMSource(node), new StreamResult(new OutputStreamWriter(System.out)));
-      }        
-       
-    }
-    
-    static void printNodeList(NodeList nodelist) 
-      throws Exception
-    {
-      Node n;
-      
-      // Set up an identity transformer to use as serializer.
-      Transformer serializer = TransformerFactory.newInstance().newTransformer();
-      serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-      
-      for (int i = 0; i < nodelist.getLength(); i++)
-      {         
-	n = nodelist.item(i);
-	if (isTextNode(n)) {
-	    // DOM may have more than one node corresponding to a 
-	    // single XPath text node.  Coalesce all contiguous text nodes
-	    // at this level
-	    StringBuffer sb = new StringBuffer(n.getNodeValue());
-	    for (
-	      Node nn = n.getNextSibling(); 
-	      isTextNode(nn);
-	      nn = nn.getNextSibling()
-	    ) {
-	      sb.append(nn.getNodeValue());
-	    }
-	    System.out.print(sb);
-	}
-	else {
-         serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(System.out)));
-	}
-        System.out.println();
-      }
-    }
-}
diff --git a/samples/XPathAPI/ExtensionFunctionResolver.java b/samples/XPathAPI/ExtensionFunctionResolver.java
deleted file mode 100644
index f3ebf3ff..00000000
--- a/samples/XPathAPI/ExtensionFunctionResolver.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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.
- */
-
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathFactory;
-import org.apache.xalan.extensions.XPathFunctionResolverImpl;
-import org.apache.xalan.extensions.ExtensionNamespaceContext;
-import org.xml.sax.InputSource;
-
-/**
- * JAXP 1.3 XPath API sample.
- * 
- * This sample shows how to use the sample XPathFunctionResolver to evaluate
- * XPath expressions containing Java or EXSLT extension functions. 
- * 
- * To support extension functions in XPath expressions, you have to set an 
- * XPathFunctionResolver on the XPath object. You can provide your implementation
- * of XPathFunctionResolver or use sample XPathFunctionResolver in
- * org.apache.xalan.extensions.XPathFunctionResolverImpl, which supports
- * the usage of Java and EXSLT extension functions.
- * 
- * You also need to provide a NamespaceContext for the XPath evaluation. You 
- * can provide your own implementation of NamespaceContext, or use the sample
- * implementation in org.apache.xalan.extensions.ExtensionNamespaceContext, 
- * which supports the following namespace prefix to URI mappings:
- * 
- * 	java  --> http://xml.apache.org/xalan/java
- * 	exslt --> http://exslt.org/common
- * 	math  --> http://exslt.org/math
- * 	set   --> http://exslt.org/sets
- * 	str   --> http://exslt.org/strings
- * 	dyn   --> http://exslt.org/dynamic
- * 	datetime --> http://exslt.org/dates-and-times
- * 
- * To run this sample, you have to put the directory containing ExtensionTest.class
- * on your classpath.
- */
-public class ExtensionFunctionResolver
-{
-    // An XPath expression containing an EXSLT extension function call.
-    public static final String EXPR1 = "math:max(/doc/num)";
-    
-    // An XPath expression containing a Java extension function call.
-    // You have to compile the Java source file ExtensionTest.java and put
-    // the directory containing ExtensionTest.class on your classpath.
-    public static final String EXPR2 = "java:ExtensionTest.test('Bob')";
-       
-    public static void main(String[] args) throws Exception
-    {
-        XPathFactory factory = XPathFactory.newInstance();
-        XPath xpath = factory.newXPath();
-        
-        // set the NamespaceContext to 
-        // org.apache.xalan.extensions.ExtensionNamespaceContext
-        xpath.setNamespaceContext(new ExtensionNamespaceContext());
-        
-        // set the XPathFunctionResolver to 
-        // org.apache.xalan.extensions.XPathFunctionResolverImpl
-        xpath.setXPathFunctionResolver(new XPathFunctionResolverImpl());
-        
-        Object result = null;
-        // Evaluate the XPath expression "math:max(/doc/num)" against 
-        // the input document numlist.xml
-        InputSource context = new InputSource("numlist.xml");
-        result = xpath.evaluate(EXPR1, context, XPathConstants.NUMBER);
-        System.out.println(EXPR1 + " = " + result);
-        
-        // Evaluate the XPath expression "java:ExtensionTest.test('Bob')"
-        result = xpath.evaluate(EXPR2, context, XPathConstants.STRING);
-        System.out.println(EXPR2 + " = " + result);
-    }
-    
-}
diff --git a/samples/XPathAPI/ExtensionTest.java b/samples/XPathAPI/ExtensionTest.java
deleted file mode 100644
index a97a2c0e..00000000
--- a/samples/XPathAPI/ExtensionTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.
- */
-
-public class ExtensionTest
-{
-    public static String test(String name)
-    {
-        return "Hello " + name + "!";
-    }
-}
diff --git a/samples/XPathAPI/XPathResolver.java b/samples/XPathAPI/XPathResolver.java
deleted file mode 100644
index 50cbddab..00000000
--- a/samples/XPathAPI/XPathResolver.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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.
- */
-
-import javax.xml.namespace.*;
-import javax.xml.xpath.*;
-import java.util.Iterator;
-
-/**
- * JAXP 1.3 XPath API sample.
- * 
- * This sample demonstrates the use of NamespaceContext, XPathFunctionResolver
- * and XPathVariableResolver. The evaluated XPath expression ("ex:addFunc(2, 3) + $xyz")
- * contains an extension function and a variable reference. The extension function
- * and variable are evaluated using our customized XPathFunctionResolver and
- * XPathVariableResolver respectively. A NamespaceContext implementation is also
- * needed to map the prefix in the extension function to a valid namespace uri. 
- */
-public class XPathResolver
-{
-    /**
-     * The XPath expression to evaluate, which contains an extension
-     * function and a variable reference.
-     */
-    private static final String EXPR = "ex:addFunc(2, 3) + $xyz";
-    
-    /**
-     * The NamespaceContext implementation is used to map the prefix "ex"
-     * to the namespace uri "http://ex.com".
-     */
-    public static class MyNamespaceContext implements NamespaceContext
-    {
-        public String getNamespaceURI(String prefix)
-        {
-            if (prefix == null)
-              throw new IllegalArgumentException("The prefix cannot be null.");
-            
-            if (prefix.equals("ex"))
-                return "http://ex.com";
-            else
-                return null;
-        }
-        
-        public String getPrefix(String namespace)
-        {
-            if (namespace == null)
-              throw new IllegalArgumentException("The namespace uri cannot be null.");
-            if (namespace.equals("http://ex.com"))
-              return "ex";
-            else
-              return null;
-        }
-
-        public Iterator getPrefixes(String namespace)
-        {
-            return null;
-        }
-    }
-    
-    /**
-     * The XPathFunctionResolver implementation is used to evaluate
-     * the extension function "ex:addFunc(2, 3)".
-     */
-    public static class MyFunctionResolver implements XPathFunctionResolver
-    {
-    	/**
-    	 * This method returns a customized XPathFunction implementation
-    	 * for the extension function "ex:addFunc()".
-    	 */
-    	public XPathFunction resolveFunction(QName fname, int arity)
-    	{
-    	  if (fname == null)
-    	    throw new NullPointerException("The function name cannot be null.");
-    	  
-    	  // We only recognize one function, i.e. ex:addFunc().
-    	  if (fname.equals(new QName("http://ex.com", "addFunc", "ex")))
-    	    /** 
-    	     * Return a customized implementation of XPathFunction. We need
-    	     * to implement the evaluate(List) method.
-    	     */
-    	    return new XPathFunction() {
-    	      /**
-    	       * The actual implementation of the extension function.
-    	       * Just cast two arguments to Double and add them together.
-    	       */
-    	      public Object evaluate(java.util.List args) {
-    	        if (args.size() == 2) {
-    	          Double arg1 = (Double)args.get(0);
-    	          Double arg2 = (Double)args.get(1);
-    	          return new Double(arg1.doubleValue() + arg2.doubleValue());
-    	        }
-    	        else
-    	          return null;
-    	      }
-    	    };
-    	  else
-    	    return null;
-    	}
-    }
-    
-    /**
-     * Our own implementation of XPathVariableResolver, which resolves the 
-     * variable "xyz" to a double value 4.0.
-     */
-    public static class MyVariableResolver implements XPathVariableResolver
-    {
-      public Object resolveVariable(QName varName)
-      {
-        if (varName == null)
-          throw new NullPointerException("The variable name cannot be null.");
-        
-        if (varName.equals(new QName("", "xyz")))
-          return new Double(4.0);
-        else
-          return null;        	
-      }
-    }
-
-    
-    public static void main(String[] args)
-    {    	        
-        XPathFactory factory = XPathFactory.newInstance();
-        XPath xpath = factory.newXPath();
-        // Set the NamespaceContext
-        xpath.setNamespaceContext(new MyNamespaceContext());
-        // Set the function resolver
-        xpath.setXPathFunctionResolver(new MyFunctionResolver());
-        // Set the variable resolver
-        xpath.setXPathVariableResolver(new MyVariableResolver());
-        
-        Object result = null;
-        try {
-          result = xpath.evaluate(EXPR, (Object)null, XPathConstants.NUMBER);
-        }
-        catch (Exception e) {
-            e.printStackTrace();
-        }
-        
-        // The evaluation result is 9.0.
-        System.out.println("The evaluation result: " + result);
-    }
-    
-}
diff --git a/samples/extensions/IntDate.java b/samples/extensions/IntDate.java
deleted file mode 100644
index 41c29fa2..00000000
--- a/samples/extensions/IntDate.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-import java.util.Calendar;
-import java.util.Date;
-
-public class IntDate
-{
-  public static Date getDate(String year, String month, String day)
-    {
-      // Date(int, int, int) has been deprecated, so use Calendar to
-      // set the year, month, and day.
-      Calendar c = Calendar.getInstance();
-      // Convert each argument to int.
-      c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
-      return c.getTime();
-    }
-}
-
diff --git a/samples/extensions/MyCounter.java b/samples/extensions/MyCounter.java
deleted file mode 100644
index 6accf7df..00000000
--- a/samples/extensions/MyCounter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-import java.util.Hashtable;
-
-public class MyCounter {
-  static Hashtable counters = new Hashtable ();
-
-
-  public void init(org.apache.xalan.extensions.XSLProcessorContext context, 
-                   org.w3c.dom.Element elem) 
-  {
-    String name = elem.getAttribute("name");
-    String value = elem.getAttribute("value");
-    int val;
-    try 
-    {
-      val = Integer.parseInt (value);
-    } 
-    catch (NumberFormatException e) 
-    {
-      e.printStackTrace ();
-      val = 0;
-    }
-    counters.put (name, new Integer (val));
-  }
-
-  public int read(String name) 
-  { 
-    Integer cval = (Integer)counters.get(name);
-    return (cval == null) ? 0 : cval.intValue();
-  }
-
-  public void incr(org.apache.xalan.extensions.XSLProcessorContext context,  
-                   org.w3c.dom.Element elem) {
-    String name = elem.getAttribute("name");
-    Integer cval = (Integer) counters.get(name);
-    int nval = (cval == null) ? 0 : (cval.intValue () + 1);
-    counters.put (name, new Integer (nval));
-  }
-}
diff --git a/samples/extensions/sql/ext-connection/ExternalConnection.java b/samples/extensions/sql/ext-connection/ExternalConnection.java
deleted file mode 100644
index 0558f05c..00000000
--- a/samples/extensions/sql/ext-connection/ExternalConnection.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-// Imported TraX classes
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerConfigurationException;
-
-import org.apache.xalan.lib.sql.DefaultConnectionPool;
-import org.apache.xalan.lib.sql.ConnectionPoolManager;
-
-
-// Imported java classes
-import java.io.StringReader;
-import java.io.FileOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-/**
- *  Use the TraX interface to perform a transformation in the simplest manner possible
- *  (3 statements).
- */
-public class ExternalConnection
-{
-	public static void main(String[] args)
-    throws TransformerException, TransformerConfigurationException,
-           FileNotFoundException, IOException
-  {
-
-  // Create a connection to the database server
-  // Up the connection pool count for testing
-  DefaultConnectionPool cp = new DefaultConnectionPool();
-  cp.setDriver("org.apache.derby.jdbc.EmbeddedDriver");
-  cp.setURL("jdbc:derby:sampleDB");
-  //cp.setUser("sa");
-  //cp.setPassword("");
-  cp.setMinConnections(10);
-  cp.setPoolEnabled(true);
-
-  // Now let's register our connection pool so we can use
-  // in a stylesheet
-  ConnectionPoolManager pm = new ConnectionPoolManager();
-  pm.registerPool("extpool", cp);
-
-
-  // Use the static TransformerFactory.newInstance() method to instantiate
-  // a TransformerFactory. The javax.xml.transform.TransformerFactory
-  // system property setting determines the actual class to instantiate --
-  // org.apache.xalan.transformer.TransformerImpl.
-	TransformerFactory tFactory = TransformerFactory.newInstance();
-
-  // Grab the Name of the Stylesheet from the commad line
-  if (args.length == 0)
-  {
-    System.out.println("You must provide the path and name to a stylesheet to process");
-    System.exit(0);
-  }
-  
-  String stylesheet = args[0];
-  System.out.println("Transforming Stylesheet " + stylesheet);
-  
-	// Use the TransformerFactory to instantiate a Transformer that will work with
-	// the stylesheet you specify. This method call also processes the stylesheet
-  // into a compiled Templates object.
-	Transformer transformer = tFactory.newTransformer(
-        new StreamSource(stylesheet));
-
-	// For this transformation, all the required information is in the stylesheet, so generate 
-  // a minimal XML source document for the input.
-  // Note: the command-line processor (org.apache.xalan.xslt.Process) uses this strategy when 
-  // the user does not provide an -IN parameter.
-  StringReader reader =
-              new StringReader("<?xml version=\"1.0\"?> <doc/>");
-
-  // Use the Transformer to apply the associated Templates object to an XML document
-	// and write the output to a file.
-	transformer.transform(
-        new StreamSource(reader),
-        new StreamResult(new FileOutputStream("dbtest-out.html")));
-
-	System.out.println("************* The result is in dbtest-out.html *************");
-  
-  cp.setPoolEnabled(false);
-  }
-}
diff --git a/lib/brazil-2.1.jar b/samples/lib/brazil-2.1.jar
similarity index 100%
rename from lib/brazil-2.1.jar
rename to samples/lib/brazil-2.1.jar
diff --git a/samples/pom.xml b/samples/pom.xml
new file mode 100644
index 00000000..ce8e682e
--- /dev/null
+++ b/samples/pom.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
+    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+    <version>2.7.3-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>samples</artifactId>
+  <name>Apache Xalan-Java 2.7.3 Samples</name>
+  <!-- FIXME change it to the project's website -->
+  <url>http://www.example.com</url>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.11</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+      <artifactId>serializer</artifactId>
+      <version>2.7.3-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+      <artifactId>xalan</artifactId>
+      <version>2.7.3-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>2.5</version> <!-- jakata servlet is at 6.0 -->
+      <scope>provided</scope>
+    </dependency>
+
+    <!-- https://mvnrepository.com/artifact/javax.ejb/ejb-api -->
+    <dependency>
+      <groupId>javax.ejb</groupId>
+      <artifactId>ejb-api</artifactId>
+      <version>3.0</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <!-- https://mvnrepository.com/artifact/xerces/xercesImpl -->
+    <dependency>
+      <groupId>xerces</groupId>
+      <artifactId>xercesImpl</artifactId>
+      <version>2.12.2</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <!-- It isn't clear whether, or where, the Brazil server code
+	 is avalable on Maven. And I suspect the right answer is
+	 really to eliminate use of it in favor of more modern
+	 solutions. But Sun used it in their XSLTC samples, and
+	 for now I'll just continue carrying a local (ugh) copy.
+	 -->
+    <dependency>
+      <groupId>sunlabs</groupId>
+      <artifactId>brazil</artifactId>
+      <version>2.1</version>
+      <scope>system</scope>
+      <systemPath>${basedir}/lib/brazil-2.1.jar</systemPath>
+    </dependency>
+
+    <!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.rmi/jboss-rmi-api_1.0_spec -->
+    <dependency>
+      <groupId>org.jboss.spec.javax.rmi</groupId>
+      <artifactId>jboss-rmi-api_1.0_spec</artifactId>
+      <version>1.0.6.Final</version>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <plugins>
+      <!--
+	  https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html -->
+      <plugin>
+	<groupId>org.apache.maven.plugins</groupId>
+	<artifactId>maven-shade-plugin</artifactId>
+	<version>3.5.0</version>
+	<executions>
+	  <execution>
+	    <phase>package</phase>
+	    <goals>
+	      <goal>shade</goal>
+	    </goals>
+	    <configuration>
+	      <artifactSet>
+		<excludes>
+		  <!-- Their examples (testing) -->
+		  <exclude>junit:junit</exclude>
+		  <exclude>jmock:*</exclude>
+		  <exclude>org.apache.maven:lib:tests</exclude>
+		  <!-- What I think I need to exclude.
+		       Some are direct dependencies, some come in
+		       via maven packages. -->
+		  <exclude>com.github.vbmacher:java-cup</exclude>
+		  <exclude>commons-logging:commons-logging</exclude>
+		  <exclude>org.apache.commons:commons-lang3</exclude>
+		  <exclude>org.apache.ant:ant</exclude>
+		  <exclude>org.apache.ant:ant-launcher</exclude>
+		  <exclude>apache-xalan-j-2.7.3-maint-main:serializer</exclude>
+		  <exclude>de.jflex:jflex</exclude>	
+		</excludes>
+	      </artifactSet>
+	    </configuration>
+	  </execution>
+	</executions>
+      </plugin>
+  </plugins>
+  </build>
+</project>
diff --git a/samples/servlet/ApplyXSLT.java b/samples/servlet/ApplyXSLT.java
deleted file mode 100644
index 50c4d807..00000000
--- a/samples/servlet/ApplyXSLT.java
+++ /dev/null
@@ -1,854 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-package servlet;
-
-import java.io.*;
-import java.util.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.net.URLConnection;
-import javax.xml.transform.OutputKeys;
-
-import org.apache.xalan.templates.Constants;
-import org.apache.xalan.templates.StylesheetRoot;
-// SAX2 Imports
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.Locator;
-import org.xml.sax.helpers.XMLReaderFactory;
-import org.xml.sax.ext.DeclHandler;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
-
-import org.w3c.dom.*;
-import javax.xml.transform.*;
-import javax.xml.transform.stream.*;
-import org.apache.xalan.transformer.TransformerImpl;
-import org.apache.xpath.objects.XObject;
-import org.apache.xpath.objects.XString;
-import org.apache.xalan.processor.*;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-import org.xml.sax.helpers.XMLFilterImpl;
-
-/*****************************************************************************************************
- *
- * ApplyXSLT supplies the basic
- * functions for transforming XML data using XSL stylesheets.
- *
- * @author Spencer Shepard (sshepard@us.ibm.com)
- * @author R. Adam King (rak@us.ibm.com)
- * @author Tom Rowe (trowe@us.ibm.com)
- * @author Don Leslie (donald_leslie@lotus.com)
- *
- *****************************************************************************************************/
-
-public class ApplyXSLT extends HttpServlet
-{
-
-  /**
-   * Operational parameters for this class.
-   * <p>Request-time values override init-time values which override class defaults.</p>
-   * @see #init
-   * @serial
-   */
-  protected ApplyXSLTProperties ourDefaultParameters = null;
-
-  /**
-   * String representing the end of line characters for the System.
-   */
-  public final static String EOL = System.getProperty("line.separator");
-
-  /**
-   * String representing the file separator characters for the System.
-   */
-  public final static String FS = System.getProperty("file.separator");
-
-   /**
-   * String representing the current directory for properties files. See init().
-   */
-  public final static String ROOT = System.getProperty("server.root");
-  public static String CURRENTDIR;
-
-  /**
-   * Initialize operational parameters from the configuration.
-   * @param config Configuration
-   * @exception ServletException Never thrown
-   */
-  public void init(ServletConfig config)
-    throws ServletException
-  {
-    super.init(config);
-    // If the server.root property --see above-- is null, use current working directory
-    // as default location for media.properties.
-    if (ROOT != null){
-      CURRENTDIR= getServletContext().getRealPath("/WEB-INF/classes/servlet/") + FS;
-	  System.out.println ( CURRENTDIR);}
-    else
-      CURRENTDIR = System.getProperty("user.dir")+ FS;
-    
-	setDefaultParameters(config);
-	
-    setMediaProps(config.getInitParameter("mediaURL"));	
-  }
-  
- /**
-   * Sets the default parameters for the servlet from the configuration.
-   * Also sets required system properties until we figure out why servlet 
-   * sometimess fails to read properties from properties files.
-   * @param config Configuration
-   */
-  protected void setDefaultParameters(ServletConfig config)
-  {
-    ourDefaultParameters = new DefaultApplyXSLTProperties(config);
-  }
-  
-  /**
-   *	Loads the media properties file specified by the given string.
-   * @param mediaURLstring Location of the media properties file.  Can be either a full URL or a path relative
-   * to the System's server.root /servlets directory.  If this parameter is null,
-   * server.root/servlets/media.properties will be used.
-   * @see ApplyXSL#CURRENTDIR
-   */
-  protected void setMediaProps(String mediaURLstring)
-  {
-    if (mediaURLstring != null)
-    {
-      URL url = null;
-      try
-      {
-        url = new URL(mediaURLstring);
-      }
-      catch (MalformedURLException mue1)
-      {
-        try
-        {
-          url = new URL("file", "", CURRENTDIR + mediaURLstring);
-        }
-        catch (MalformedURLException mue2)
-        {
-          writeLog("Unable to find the media properties file based on parameter 'mediaURL' = "
-                   + mediaURLstring, HttpServletResponse.SC_ACCEPTED, mue2);
-          url = null;
-        }
-      }
-      if (url != null)
-      {
-        try
-        {
-          ourMediaProps = new OrderedProps(url.openStream());
-        }
-        catch (IOException ioe1)
-        {
-          writeLog("Exception occurred while opening media properties file: " + mediaURLstring +
-                   ".  Media table may be invalid.", HttpServletResponse.SC_ACCEPTED, ioe1);
-        }
-      }
-    }
-    else
-    {
-      String defaultProp = CURRENTDIR + "media.properties";
-      try
-      {
-        ourMediaProps = new OrderedProps(new FileInputStream(defaultProp));
-      }
-      catch (IOException ioe2)
-      {
-        writeLog("Default media properties file " + defaultProp + " not found.",
-                 HttpServletResponse.SC_ACCEPTED, ioe2);
-      }
-    }
-  }
-
-  public String getMedia(HttpServletRequest request)
-  {
-    return ourMediaProps.getValue(request.getHeader(HEADER_NAME));
-  }
-  
-  // doPost removed for security reasons due to the possibility of sending
-  // unsecure XML and XSL XSLTInputSources through the request input stream
-
-  /**
-   * HTTP Get method passed on to process().
-   * @param request The request
-   * @param response The response
-   * @see #process
-   * @exception ServletException Never thrown
-   * @exception IOException Never thrown
-   */
-  public void doGet (HttpServletRequest request,
-                     HttpServletResponse response)
-    throws ServletException, IOException
-  {
-    try
-    {	
-      TransformerFactory tFactory = TransformerFactory.newInstance();
-      process(tFactory, request, response);
-    }
-    catch (Exception e)
-    {
-    }
-  }
-  
-  /**
-   * Coordinates applying an XSL stylesheet to XML data using operational parameters.
-   * <p>If successfully applied, the result tree will be streamed to the response object
-   * and the content type set according to the XSL stylesheet's &lt;xsl:output> element(s).</p>
-   * <p>If there is a problem in parsing the XML/XSL or if there is a problem in applying
-   * the XSL to the XML, an exception will be streamed to the response object.  The detail
-   * of the information returned in the response object will depend on whether we're
-   * running in debug mode or not.</p>
-   * @param processor implementation of TRaX processor
-   * @param request  May contain information relevant to creating XML and XSL XSLTInputSource's
-   * @param response Where to write the transformation result
-   * @see #getDocument
-   * @see #getStylesheet
-   * @see #getContentType
-   * @see #displayException
-   * @see #setStylesheetParams
-   * @exception ServletException Never thrown
-   * @exception IOException Never thrown
-   */
-  
-  public void process(TransformerFactory tFactory, 
-					  HttpServletRequest request,
-                      HttpServletResponse response)
-    throws ServletException, IOException, SAXException
-  {
-    boolean debug = ourDefaultParameters.isDebug(request);
-
-    long time = 0;
-    if (debug)
-      time = System.currentTimeMillis();
-
-    // Listener to be used for all reporting
-    ApplyXSLTListener listener = new ApplyXSLTListener();
-	listener.out.println("debug is " + debug);
-
-    StreamSource xmlSource = null;
-	StreamSource xslSource = null;
-    try
-    {
-      if ((xmlSource = getDocument(request, listener)) == null)
-        throw new ApplyXSLTException("getDocument() returned null",
-                                     new NullPointerException(),
-                                     response.SC_NOT_FOUND);
-    }
-    catch (ApplyXSLTException axe)
-    {
-      axe.appendMessage(EOL + "getDocument() resulted in ApplyXSLTException" + EOL
-                        + listener.getMessage());
-      if (debug) writeLog(axe);
-      displayException(response, axe, debug);
-      xmlSource = null;
-    }
-    // creating XSL Stylesheet
-    if (xmlSource != null)
-	{
-      try
-      {
-	    if ((xslSource = getStylesheet(tFactory, request, xmlSource, listener)) == null)
-		{
-          throw new ApplyXSLTException("getStylesheet() returned null",
-                                       new NullPointerException(),
-                                       response.SC_NOT_FOUND);
-        }
-        // For time being, must "reset" xmlSource after extracting stylesheet PI
-		xmlSource = getDocument(request, listener); 
-      }
-      catch (ApplyXSLTException axe)
-      {
-        axe.appendMessage(EOL + "getStylesheet() resulted in ApplyXSLTException" + EOL
-                          + listener.getMessage());
-        if (debug) writeLog(axe);
-        displayException(response, axe, debug);
-        xslSource = null;
-      }
-    // perform Transformation
-	  
-    if ((xmlSource != null) && (xslSource != null))
-    {
-	  try
-	  {
-        listener.out.println("Performing transformation...");
-		
-        Templates templates = tFactory.newTemplates(xslSource);
-        Transformer transformer = templates.newTransformer();
-        {
-          try
-          {
-            String contentType = null;
-			      contentType = getContentType(templates);
-            if (contentType != null);
-              response.setContentType(contentType);
-
-			      if (transformer instanceof TransformerImpl)
-			      {
-			        TransformerImpl transformerImpl = (TransformerImpl)transformer;
-              transformerImpl.setQuietConflictWarnings(ourDefaultParameters.isNoCW(request));
-			      }
-			
-			      setStylesheetParams(transformer, request);			
-	          transformer.transform(xmlSource, new StreamResult(response.getOutputStream()));
-			
-			      if (debug)              
-              writeLog(listener.getMessage(), response.SC_OK);
-          }
-          catch (Exception exc)
-          {
-            ApplyXSLTException axe = new ApplyXSLTException
-				                     ("Exception occurred during Transformation:"
-                                          + EOL + listener.getMessage() + EOL
-                                          + exc.getMessage(), 
-									              exc,
-                                response.SC_INTERNAL_SERVER_ERROR);
-            if (debug) writeLog(axe);
-            displayException(response, axe, debug);
-          }
-          finally
-          {
-            // transformer.reset();
-          } // end of try ... catch ... finally
-		}
-	  }
-      catch (/*org.xml.sax.SAX*/Exception saxExc)
-      {
-        ApplyXSLTException axe = new ApplyXSLTException
-			                     ("Exception occurred during ctor/Transformation:"
-                                             + EOL + listener.getMessage() + EOL
-                                             + saxExc.getMessage(), 
-			                					  saxExc,
-                                  response.SC_INTERNAL_SERVER_ERROR);
-        if (debug) writeLog(axe);
-        displayException(response, axe, debug);
-      } // end of new try ... catch
-    } // end of if((stylesheetRoot != null) ...
-    if (debug)
-    {
-      time = System.currentTimeMillis() - time;
-      writeLog("  No Conflict Warnings = " + ourDefaultParameters.isNoCW(request) +
-               "  Transformation time: " + time + " ms", response.SC_OK);
-    }
-  }
-  }  
-
-  /**
-   * Returns an XML XSLTInputSource DOM.  Attempts will be make to create the DOM from the following
-   * sources:
-   * <ol>
-   * <li>A relative URL specified in the HTTP request's path information. This capability is intended
-   * for use by <b>servlet engines that map</b> some or all XML data to be processed at the server.</li>
-   * <li>A URL specified in the HTTP request's <code>URL=</code> parameter.  This capability
-   * is intended for <b>clients wishing to selectively process</b> XML data at the server.  For
-   * security reasons, this URL will be forced to the local IP host.</li>
-   * <li>The HTTP request's XML input stream. This capability is intended for use by chained servlets.</li>
-   * </ol>
-   * @param request May contain or point to the XML XSLTInputSource
-   * @param listener To record detailed parsing messages for possible return to requestor
-   * @return XML XSLTInputSource DOM, or null if the XSLTInputSource could not be parsed
-   * @exception ApplyXSLTException Thrown if exception occurs while handling request
-   */
-  protected StreamSource getDocument(HttpServletRequest request,
-                                     ApplyXSLTListener listener)
-    throws ApplyXSLTException
-  {
-    try
-    {
-      String xmlURL = null;
-      // document from PathInfo
-      if ((xmlURL = request.getPathInfo()) != null)
-      {
-        listener.out.println("Parsing XML Document from PathInfo: " + xmlURL);
-        return new StreamSource(new URL("http", ((DefaultApplyXSLTProperties)
-                                         ourDefaultParameters).getLocalHost(),
-                                         request.getServerPort(),
-                                         xmlURL.replace('\\', '/')).openStream());                          
-      }
-      // document from Request parameter
-      if ((xmlURL = ourDefaultParameters.getXMLurl(request)) != null)
-      {
-        listener.out.println("Parsing XML Document from request parameter: " + xmlURL);
-        return new StreamSource(new URL(xmlURL).openStream());
-      }
-      // document from chain
-      String contentType = request.getContentType();
-      if ((contentType != null) && contentType.startsWith("text/xml"))
-      {
-        listener.out.println("Parsing XML Document from request chain");
-        return new StreamSource(request.getInputStream());
-      }
-    }
-    catch (IOException ioe)
-    {
-      throw new ApplyXSLTException(ioe, HttpServletResponse.SC_NOT_FOUND);
-    }
-    catch (Exception e)
-    {
-      throw new ApplyXSLTException(e, HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-    }
-    return null;
-  }
-
-  /**
-   * Returns a Templates (StylesheetRoot) object.  Attempts will be make to create the Stylesheet 
-   * from the followingsources:
-   * <ol>
-   * <li>A URL specified in the HTTP request's <code>xslURL=</code> parameter.  This capability
-   * is intended for clients wishing to selectively override the server algorithm for applying XSL
-   * stylesheets.  For security reasons, this URL will be forced to the local IP host.</li>
-   * <li>XML association.  XML documents may contain references to one or more stylesheets using
-   * <a HREF="http://www.w3.org/TR/1999/PR-xml-stylesheet-19990114">this</a> W3C proposed recommendation.
-   * If the XML document does contain such references, a best match will be chosen based on the browser
-   * type making the request and the default association.  This capability enables relationships to be
-   * defined between client capabilities and stylesheets capable of acting on these capabilities.</li>
-   * <li>A configured default stylesheet URL</li>
-   * </ol>
-   * @param request May contain or point to the XSL XSLTInputSource
-   * @param xmlSource  May point to the XSL XSLTInputSource
-   * @param listener To record detailed parsing messages for possible return to requestor
-   * @return XSL XSLTInputSource, or null if the request could not be parsed
-   * @see #makeDocument
-   * @see #getMedia
-   * @see #STYLESHEET_ATTRIBUTE
-   * @see #getXSLURLfromDoc
-   * @see #toAcceptLanguageConnection
-   * @exception ApplyXSLTException Thrown if exception occurs while handling request
-   */
-  protected StreamSource getStylesheet(TransformerFactory tFactory,
-				   		  			   HttpServletRequest request,
-                                       StreamSource xmlSource,
-                                       ApplyXSLTListener listener)
-    throws ApplyXSLTException
-  {
-    try
-    {
-      //stylesheet URL from request
-      String xslURL = ((DefaultApplyXSLTProperties) ourDefaultParameters).getXSLRequestURL(request);
-
-      if (xslURL != null)
-        listener.out.println("Parsing XSL Stylesheet Document from request parameter: "
-                             + xslURL);
-      else
-      {
-        // find stylesheet from XML Document, Media tag preference
-        if (xmlSource != null){
-          listener.out.println("calling getXSLURLfromDoc and getMedia " + getMedia(request) );
-          xslURL = getXSLURLfromDoc(xmlSource, STYLESHEET_ATTRIBUTE, getMedia(request), tFactory);
-        }
-        if (xslURL != null)
-          listener.out.println("Parsing XSL Stylesheet Document from XML Document tag: " + xslURL);
-        else
-          // Configuration Default
-          if ((xslURL = ourDefaultParameters.getXSLurl(null)) != null)
-            listener.out.println("Parsing XSL Stylesheet Document from configuration: " + xslURL);
-      }
-      return new StreamSource(xslURL);
-    }
-    catch (IOException ioe)
-    {
-      throw new ApplyXSLTException(ioe, HttpServletResponse.SC_NOT_FOUND);
-    }
-    catch (Exception e)
-    {
-      throw new ApplyXSLTException(e, HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-    }
-  }
-
-  /**
-   * Returns the response content type specified by the media-type and encoding attributes of
-   * the &lt;xsl:output> element(s) of the stylesheet.
-   * @param xslSourceRoot XSL Stylesheet to be examined for &lt;xsl:output> elements.
-   * @return The response content type (MIME type and charset) of the stylesheet output
-   * @see #process
-   */
-  public String getContentType(Templates templates)
-  {
-    Properties oprops = templates.getOutputProperties();
-    String encoding = oprops.getProperty(OutputKeys.ENCODING);  
-          String media = oprops.getProperty(OutputKeys.MEDIA_TYPE);
-          if (media != null)
-          {
-      if (encoding != null)
-        return media + "; charset=" + encoding;
-      return media;
-          }
-          else
-          {
-            String method = oprops.getProperty(OutputKeys.METHOD);
-            if (method.equals("html"))
-                    return "text/html";
-            else if (method.equals("text"))
-                    return "text/plain";
-            else 
-                    return "text/xml";
-          }
-  }  
-  
-
-  /**
-   * Defines and sets select top-level XSL stylesheet variables from the HTTP request, which
-   * can be evaluated using &lt;xsl:param-variable&gt;.  The following variables will be
-   * automatically set:
-   * <dl>
-   * <dt><i>ParameterName</i></dt>
-   * <dd>Each non-reserved request parameter returned from request.getParameterNames().  If a
-   *     parameter contains more than a single value, only the first value is available.</dd>
-   * <dt>servlet-RemoteAddr</dt>
-   * <dd>Contains String output from request.getRemoteAddr(), which is the IP address
-   *     of the client machine.</dd>
-   * <dt>servlet-RemoteHost</dt>
-   * <dd>Contains String output from request.getRemoteHost(), which is the host name
-   *     of the client machine.</dd>
-   * <dt>servlet-RemoteUser</dt>
-   * <dd>Contains String output from request.getRemoteUser(), which was the user name
-   *     accepted by the server to grant access to this servlet.</dd>
-   * <dt>servlet-Request</dt>
-   * <dd>Contains the request object.</dd>
-   * </dl>
-   * @param xslprocessor Where to register parameters to be set
-   * @param request Provides access to all meaningful parameters to set
-   * @see #process
-   */
-  public void setStylesheetParams(Transformer transformer, HttpServletRequest request)
-  {
-    Enumeration paramNames = request.getParameterNames();
-    while (paramNames.hasMoreElements())
-    {
-      String paramName = (String) paramNames.nextElement();
-      try
-      {
-        String[] paramVals = request.getParameterValues(paramName);
-        if (paramVals != null)
-            transformer.setParameter(paramName, new XString(paramVals[0]));
-                                            
-      }
-      catch (Exception e)
-      {
-      }
-    }
-    try
-    {
-      transformer.setParameter("servlet-RemoteAddr", new XString(request.getRemoteAddr()));
-                                      
-    }
-    catch (Exception e)
-    {
-    }
-    try
-    {
-      transformer.setParameter("servlet-RemoteHost", new XString(request.getRemoteHost()));
-                                      
-    }
-    catch (Exception e)
-    {
-    }
-    try
-    {
-      transformer.setParameter("servlet-RemoteUser", new XString(request.getRemoteUser()));
-                                      
-    }
-    catch (Exception e)
-    {
-    }
-  }
-
-
-  /**
-   * Writes the following information to the servlet log:
-   * <ol>
-   * <li>HTTP status code</li>
-   * <li>Message</li>
-   * <li>Stack trace</li>
-   * </ol>
-   * @param axe Contains valid HTTP status code, message, and stack trace (optional)
-   */
-  protected void writeLog(ApplyXSLTException axe)
-  {
-    writeLog(axe.getMessage(), axe.getStatusCode(), axe.getException());
-  }
-
-  /**
-   * Writes the following information to the servlet log:
-   * <ol>
-   * <li>HTTP status code</li>
-   * <li>Message</li>
-   * <li>Stack trace</li>
-   * </ol>
-   * @param msg Message to be logged
-   * @param statusCode Valid status code from javax.servlet.http.HttpServletResponse
-   * @param t Used to generate stack trace (may be =null to suppress stack trace)
-   */
-  protected void writeLog(String msg, int statusCode, Throwable t)
-  {
-    if (t == null)
-      writeLog(msg, statusCode);
-    else
-    {
-      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
-      PrintWriter writer = new PrintWriter(bytes, true);
-      System.out.println("Exception is " + t.getClass().getName());
-      t.printStackTrace(writer);
-      log("HTTP Status Code: " + statusCode + " - " + msg + EOL + bytes.toString());
-    }
-  }
-
-  /**
-   * Writes the following information to the servlet log:
-   * <ol>
-   * <li>HTTP status code</li>
-   * <li>Message</li>
-   * </ol>
-   * @param msg Message to be logged
-   * @param statusCode Valid status code from javax.servlet.http.HttpServletResponse
-   */
-  protected void writeLog(String msg, int statusCode)
-  {
-    log("HTTP Status Code: " + statusCode + " - " + msg);
-  }
-
-  /**
-   * Invokes response.sendError setting an HTTP status code and optionally an error message
-   * as an HTML page.
-   * <p>If running in debug mode, also try to return a stack trace of the exception and
-   * and xml/xsl processor messages.</p>
-   * @param response Where to stream the exception to
-   * @param xse The wrapper which contains the exception and its HTTP status code
-   * @param debug Indicates whether to include stack trace, etc.
-   */
-  protected void displayException(HttpServletResponse response, ApplyXSLTException xse, boolean debug)
-  {
-    String mesg = xse.getMessage();
-    if (mesg == null)
-      mesg = "";
-    else mesg = "<B>" + mesg + "</B>";
-    StringTokenizer tokens = new StringTokenizer(mesg, EOL);
-    StringBuffer strBuf = new StringBuffer();
-    while (tokens.hasMoreTokens())
-      strBuf.append(tokens.nextToken() + EOL + "<BR>");
-    mesg = strBuf.toString();
-    if (debug)
-    {
-      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
-      PrintWriter writer = new PrintWriter(bytes, true);
-      xse.getException().printStackTrace(writer);
-      mesg += " <PRE> " + bytes.toString() + " </PRE> ";
-    }
-    response.setContentType("text/html");
-    try
-    {
-      response.sendError(xse.getStatusCode(), mesg);
-    }
-    catch (IOException ioe)
-    {
-      System.err.println("IOException is occurring when sendError is called");
-    }
-  }
-
-  /**
-   * Mapping of HTTP request's user-Agent values to stylesheet media= values.
-   * <p>This mapping is defined by a file pointed to by the operational parameter "mediaURL" which can
-   *  either contain a full URL or a path relative to the System's server.root /servlets directory.</p>
-   * @see #setMediaProps
-   * @see #getMedia
-   * @serial
-   */
-  protected OrderedProps ourMediaProps = null;
-
-  /**
-   * Returns a connection which respects the Accept-Language header of the HTTP request.  This
-   * is useful when XSL files are internationalized for use with Web servers which respect this
-   * header.
-   * <p>For example, Apache 1.3.6 may be configured for multiviews.  Under this configuration,
-   * requests for http://myhost/index.html would return http://myhost/index.html.fr to French browsers
-   * and http://myhost/index.html.en to English browsers.</p>
-   * @param url Location to connect to
-   * @param request Could contain an Accept-Language header
-   * @return An Accept-Language-enabled URL connection
-   * @see #getStylesheet
-   */
-  protected URLConnection toAcceptLanguageConnection(URL url, HttpServletRequest request)
-    throws Exception
-  {
-    URLConnection tempConnection = url.openConnection();
-    tempConnection.setRequestProperty("Accept-Language", request.getHeader("Accept-Language"));
-    return tempConnection;
-  }
-
-
-  /**
-   * Returns the XSL stylesheet URL associated with the specified XML document.  If multiple XSL
-   * stylesheets are associated with the XML document, preference will be given to the stylesheet
-   * which contains an attribute name/value pair that corresponds to the specified attributeName
-   * and attributeValue.
-   * @param xmlSource XML XSLTInputSource to be searched for associated XSL stylesheets
-   * @param attributeName  Attribute name to provide preferential matching
-   * @param attributeValue Attribute value to provide preferential matching
-   * @return The preferred XSL stylesheet URL, or null if no XSL stylesheet association is found
-   * @see #getStylesheet
-   */
-  public static String getXSLURLfromDoc(StreamSource xmlSource,
-                                        String attributeName,
-                                        String attributeValue,
-                                        TransformerFactory tFactory)
-  {
-    String tempURL = null, returnURL = null;
-    try
-    {
-	  DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
-      DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
-      Node sourceTree = docBuilder.parse(xmlSource.getInputStream());
-      for(Node child=sourceTree.getFirstChild(); null != child; child=child.getNextSibling())
-      {
-        if(Node.PROCESSING_INSTRUCTION_NODE == child.getNodeType())
-        {
-          ProcessingInstruction pi = (ProcessingInstruction)child;
-          if(pi.getNodeName().equals("xml-stylesheet"))
-          {
-            PIA pia = new PIA(pi);
-            if("text/xsl".equals(pia.getAttribute("type")))
-            {
-              tempURL = pia.getAttribute("href");
-              String attribute = pia.getAttribute(attributeName);
-              if ((attribute != null) && (attribute.indexOf(attributeValue) > -1))
-                return tempURL;
-              if (!"yes".equals(pia.getAttribute("alternate")))
-                returnURL = tempURL;
-            }
-          }
-        }
-      }
-    }
-    catch(Exception saxExc)
-    {
-    }
-    return returnURL;
-  }  
-
- /**
-   * The attribute name in the <?xml-stylesheet> tag used in stylesheet selection.
-   */
-  protected static final String STYLESHEET_ATTRIBUTE = "media";
-
-  /**
-   *	The HTTP Header used for matching the Stylesheet attribute via the
-   * media properties file selected.
-   */
-  protected static final String HEADER_NAME = "user-Agent";
-}
-
-/**
- *  Stores the keys and values from a file (similar to a properties file) and
- *  can return the first value which has a key contained in its string.
- *  File can have comment lines starting with '#" and for each line the entries are
- *  separated by tabs and '=' char.
- */
-class OrderedProps
-{
-
-  /**
-   * Stores the Key and Values as an array of Strings
-   */
-  private Vector attVec = new Vector(15);
-
-  /**
-   * Constructor.
-   * @param inputStream Stream containing the properties file.
-   * @exception IOException Thrown if unable to read from stream
-   */
-  OrderedProps(InputStream inputStream)
-    throws IOException
-  {
-    BufferedReader input  = new BufferedReader(new InputStreamReader(inputStream));
-    String currentLine, Key = null;
-    StringTokenizer currentTokens;
-    while ((currentLine = input.readLine()) != null)
-    {
-      currentTokens = new StringTokenizer(currentLine, "=\t\r\n");
-      if (currentTokens.hasMoreTokens()) Key = currentTokens.nextToken().trim();
-      if ((Key != null) && !Key.startsWith("#") && currentTokens.hasMoreTokens())
-      {
-        String temp[] = new String[2];
-        temp[0] = Key; temp[1] = currentTokens.nextToken().trim();
-        attVec.addElement(temp);
-      }
-    }
-  }
-
-  /**
-   * Iterates through the Key list and returns the first value for whose
-   * key the given string contains.  Returns "unknown" if no key is contained
-   * in the string.
-   * @param s String being searched for a key.
-   * @return Value for key found in string, otherwise "unknown"
-   */
-  String getValue(String s)
-  {
-    int i, j = attVec.size();
-    for (i = 0; i < j; i++)
-    {
-      String temp[] = (String[]) attVec.elementAt(i);
-      if (s.indexOf(temp[0]) > -1)
-        return temp[1];
-    }
-    return "unknown";
-  }
-}
-
-/**
- * Parses a processing instruction's (PI) attributes for easy retrieval.
- */
-class PIA
-{
-
-  private Hashtable piAttributes = null;
-
-  /**
-   * Constructor.
-   * @param pi The processing instruction whose attributes are to be parsed
-   */
-  PIA(ProcessingInstruction pi)
-  {
-    piAttributes = new Hashtable();
-    StringTokenizer tokenizer = new StringTokenizer(pi.getNodeValue(), "=\"");
-    while(tokenizer.hasMoreTokens())
-    {
-      piAttributes.put(tokenizer.nextToken().trim(), tokenizer.nextToken().trim());
-    }
-  }
-
-  /**
-   * Returns value of specified attribute.
-   *  @param name Attribute name
-   *  @return Attribute value, or null if the attribute name does not exist
-   */
-  String getAttribute(String name)
-  {
-    return (String) piAttributes.get(name);
-  }  
-}
diff --git a/samples/servlet/ApplyXSLTException.java b/samples/servlet/ApplyXSLTException.java
deleted file mode 100644
index 023b3c94..00000000
--- a/samples/servlet/ApplyXSLTException.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * 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.
- */
-/*****************************************************************************************************
- *
- * Wrapper for exceptions occurring during apply XSL processing.  
- * Allows for exceptions to be returned with an associated HTTP Status Code.
- *
- * @author Spencer Shepard (sshepard@us.ibm.com)
- * @author R. Adam King (rak@us.ibm.com)
- * @author Tom Rowe (trowe@us.ibm.com)
- *
- *****************************************************************************************************/
-package servlet;
-
-public class ApplyXSLTException extends Exception {
-
-    /**
-      * Exception Message.
-      * @serial
-      */ 
-    private String myMessage = "";
-
-    /**
-      * HTTP Status Code. Default= internal server error.
-      * @serial
-      */
-    private int  myHttpStatusCode = javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR; 
-
-    /**
-      * Wrapped exception
-      * @serial
-      */
-    private Exception myException = null;
-
-    /**
-      * Constructor for exception with no additional detail.
-      */
-    public ApplyXSLTException() 
-    { 
-        super(); 
-    }
-
-    /**
-      * Constructor for exception with message.
-      * @param s Exception message
-      */
-    public ApplyXSLTException(String s) 
-    { 
-        super(); 
-	myMessage = s;
-    }
-
-    /**
-      * Constructor for exception with HTTP status code.
-      * @param hsc Valid status code from javax.servlet.http.HttpServletResponse
-      */
-    public ApplyXSLTException(int hsc) 
-    {
-	super();
-	myHttpStatusCode = hsc;
-    }
-
-    /**
-      * Constructor for exception with message and HTTP status code.
-      * @param s Exception message
-      * @param hsc Valid status code from javax.servlet.http.HttpServletResponse
-      */
-    public ApplyXSLTException(String s, int hsc)
-    {
-	super();
-	myHttpStatusCode = hsc;
-    }
-
-    /**
-      * Constructor for exception.
-      * @param e Exception to be wrapped.
-      */
-    public ApplyXSLTException(Exception e)
-    {
-	super();
-	myMessage = e.getMessage();
-	myException = e;
-    }
-
-    /**
-      * Constructor for passed exception with message.
-      * @param s Exception message
-      * @param e Exception to be wrapped.
-      */
-    public ApplyXSLTException (String s, Exception e)
-    {
-	super();
-	myMessage = s;
-	myException = e;
-    }
-
-    /**
-      * Constructor for passed exception with HTTP status code.
-      * @param e Exception to be wrapped.
-      * @param hsc Valid status code from javax.servlet.http.HttpServletResponse
-      */
-    public ApplyXSLTException(Exception e, int hsc)
-    {
-	super();
-	myMessage = e.getMessage();
-	myException = e;
-	myHttpStatusCode = hsc;
-    }
-
-    /**
-      * Constructor for passed exception with HTTP status code and message.
-      * @param s Exception message
-      * @param e Exception to be wrapped.
-      * @param hsc Valid status code from javax.servlet.http.HttpServletResponse
-      */
-    public ApplyXSLTException(String s, Exception e, int hsc)
-    {
-	super();
-	myMessage = s;
-	myException = e;
-	myHttpStatusCode = hsc;
-    }
-
-    /**
-      * Returns exception message.
-      * @return exception message
-      */
-    public String getMessage()
-    {
-	return myMessage;
-    }
-
-    /**
-      * Appends string to exception message.
-      * @param s String to be added to message
-      */
-    public void appendMessage(String s)
-    {
-	myMessage += s;
-    }
-
-    /**
-      * Returns the wrapped exception.
-      * @return Wrapped exception
-      */
-    public Exception getException()
-    {
-	return myException;
-    }
-
-    /**
-      * Returns the HTTP status code associated with the exception.
-      * @return Valid status code from javax.servlet.http.HttpServletResponse
-      */
-    public int getStatusCode()
-    {
-	return myHttpStatusCode;
-    }
-}
-
diff --git a/samples/servlet/ApplyXSLTListener.java b/samples/servlet/ApplyXSLTListener.java
deleted file mode 100644
index 7e0f95bd..00000000
--- a/samples/servlet/ApplyXSLTListener.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-package servlet;
-
-import java.io.*;
-import org.xml.sax.*;
-import org.apache.xml.utils.DefaultErrorHandler;
-
-/*****************************************************************************************************
- * ApplyXSLTListener provides a buffered listener essential for capturing, and then subsequently
- * reporting, XML and XSL processor messages which may be of use in debugging XML+XSL processed at
- * the server.
- *
- * @author Spencer Shepard (sshepard@us.ibm.com)
- * @author R. Adam King (rak@us.ibm.com)
- * @author Tom Rowe (trowe@us.ibm.com)
- *
- *****************************************************************************************************/
-
-public class ApplyXSLTListener extends DefaultErrorHandler implements ErrorHandler
-{
-
-    /**
-      * Output stream
-      */
-    private ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-
-    /**
-      * Buffered output stream
-      */
-    public PrintWriter out = null;
-
-    /**
-      * Constructor.
-      */
-    public ApplyXSLTListener()
-    {
-      out = new PrintWriter(new BufferedOutputStream(outStream), true);
-    }
-
-    /**
-      * Receive notification of a warning.
-      *
-      * @param spe The warning information encapsulated in a SAX parse exception.
-      */
-    public void warning(SAXParseException spe)
-    {
-	out.println("Parser Warning: " + spe.getMessage());
-    }
-
-    /**
-      * Receive notification of a recoverable error.
-      *
-      * @param spe The error information encapsulated in a SAX parse exception.
-      */
-    public void error(SAXParseException spe)
-    {
-	out.println("Parser Error: " + spe.getMessage());
-    }
-
-    /**
-      * Receive notification of a non-recoverable error.
-      *
-      * @param spe The error information encapsulated in a SAX parse exception.
-      * @exception SAXException Always thrown
-      */
-    public void fatalError(SAXParseException spe)
-    throws SAXException
-    {
-	out.println("Parser Fatal Error: " + spe.getMessage());
-	throw spe;
-    }
-
-    /**
-      * Returns the buffered processing message(s).
-      * @return Buffered processing message(s)
-      */
-    public String getMessage()
-    {
-	return outStream.toString();
-    }
-}
-
diff --git a/samples/servlet/ApplyXSLTProperties.java b/samples/servlet/ApplyXSLTProperties.java
deleted file mode 100644
index c62a2d2b..00000000
--- a/samples/servlet/ApplyXSLTProperties.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-package servlet;
-
-import java.net.MalformedURLException;
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-/*****************************************************************************************************
- * 
- * ApplyXSLTProperties contains operational parameters for ApplyXSLT based 
- * on program defaults and configuration.  
- * <p>This class is also used to return values for request-time parameters.</p>
- *
- * @author Spencer Shepard (sshepard@us.ibm.com)
- * @author R. Adam King (rak@us.ibm.com)
- * @author Tom Rowe (trowe@us.ibm.com)
- *
- *****************************************************************************************************/
-
-public class ApplyXSLTProperties {
-
-    /**
-      * Program default for parameter "URL"
-      */
-    private final String DEFAULT_URL;
-
-    /**
-      * Program default for parameter "xslURL"
-      */
-    private final String DEFAULT_xslURL;
-    
-    /**
-      * Program default for parameter "debug"
-      */
-    private final boolean DEFAULT_debug;
-
-    /**
-      * Program default for parameter "noConflictWarnings"
-      */
-    private final boolean DEFAULT_noCW;
-    
-    /**
-      * Constructor to use program defaults.
-      */
-    public ApplyXSLTProperties() 
-    {
-	DEFAULT_URL = null;
-	DEFAULT_xslURL = null;
-	DEFAULT_debug = false;
-	DEFAULT_noCW = false;
-    }
-
-    /**
-      * Constructor to use to override program defaults.
-      * @param config Servlet configuration
-      */
-    public ApplyXSLTProperties(ServletConfig config)
-    {
-	String xm = config.getInitParameter("URL"),
-	       xu = config.getInitParameter("xslURL"),
-	       db = config.getInitParameter("debug"),
-	       cw = config.getInitParameter("noConflictWarnings");
-	       
-	if (xm != null) DEFAULT_URL = xm;
-	else DEFAULT_URL = null;
-	if (xu != null) DEFAULT_xslURL = xu;
-	else DEFAULT_xslURL = null;
-	if (db != null) DEFAULT_debug = new Boolean(db).booleanValue();
-	else DEFAULT_debug = false;
-	if (cw != null) DEFAULT_noCW = new Boolean(cw).booleanValue();
-	else DEFAULT_noCW = false;
-    }
-   
-    /**
-      * Given a parameter name, returns the HTTP request's String value; 
-      * if not present in request, returns default String value.
-      * @param request Request to check for default override
-      * @param param Name of the parameter
-      * @return String value of named parameter
-      */
-    public String getRequestParmString(HttpServletRequest request, String param)
-    {
-	if (request != null) { 
-	    String[] paramVals = request.getParameterValues(param); 
-	    if (paramVals != null) 
-		return paramVals[0];
-	}
-	return null;
-    }
-
-    /**
-      * Returns the current setting for "URL".
-      * @param request Request to check for parameter value
-      * @return String value for "URL"
-      * @exception MalformedURLException Will not be thrown
-      */
-    public String getXMLurl(HttpServletRequest request)
-    throws MalformedURLException
-    {
-	String temp = getRequestParmString(request, "URL");
-	if (temp != null)
-	    return temp;
-	return DEFAULT_URL;
-    }     
-    
-    /**
-      * Returns the current setting for "xslURL".
-      * @param request Request to check for parameter value
-      * @return String value for "xslURL"
-      * @exception MalformedURLException Will not be thrown
-      */
-    public String getXSLurl(HttpServletRequest request)
-    throws MalformedURLException
-    {  
-	String temp = getRequestParmString(request, "xslURL");
-	if (temp != null)
-	    return temp;
-	return DEFAULT_xslURL;
-    }
-    
-    /**
-      * Returns the current setting for "debug".
-      * @param request Request to check for parameter value
-      * @return Boolean value for "debug"
-      */
-    public boolean isDebug(HttpServletRequest request)
-    {
-	String temp = getRequestParmString(request, "debug");
-	if (temp != null)
-	    return new Boolean(temp).booleanValue();
-	return DEFAULT_debug;
-    }
-
-    /**
-      * Returns the current setting for "noConflictWarnings".
-      * @param request Request to check for parameter value
-      * @return Boolean value for "noConflictWarnings"
-      */
-    boolean isNoCW(HttpServletRequest request)
-    {
-	String temp = getRequestParmString(request, "noConflictWarnings");
-	if (temp != null)
-	    return new Boolean(temp).booleanValue();
-	return DEFAULT_noCW;
-    }    
-}
diff --git a/samples/servlet/DefaultApplyXSLTProperties.java b/samples/servlet/DefaultApplyXSLTProperties.java
deleted file mode 100644
index b3b72610..00000000
--- a/samples/servlet/DefaultApplyXSLTProperties.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-package servlet;
-
-import java.net.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import java.util.Enumeration;
-import java.util.Properties;
-
-/*****************************************************************************************************
- * 
- * DefaultApplyXSLTProperties contains operational parameters for DefaultApplyXSLT based 
- * on program defaults and configuration.  
- * <p>This class is also used to return values for request-time parameters.</p>
- *
- * @author Spencer Shepard (sshepard@us.ibm.com)
- * @author R. Adam King (rak@us.ibm.com)
- * @author Tom Rowe (trowe@us.ibm.com)
- *
- *****************************************************************************************************/
-
-public class DefaultApplyXSLTProperties extends ApplyXSLTProperties {
-    
-    /**
-      * Program default for parameter "catalog".
-      * @see #getCatalog
-      */
-    private final String DEFAULT_catalog;
-
-    /**
-      * Host used for local context comparisons.
-      * @see #getLocalHost
-      * @see #setLocalHost
-      */
-    protected transient String localHost = null;
-    
-    /**
-     * Server port. Used in toSafeURL() -- fix submitted by Ritesh Kumar.
-     */
-    protected static int port =0;
-
-    /**
-      * Constructor to use program defaults.
-      */
-    public DefaultApplyXSLTProperties()
-    {
-	super();
-	DEFAULT_catalog = null;
-	setLocalHost();
-	// setSystemProperties();
-    }
-
-    /**
-      * Constructor to use to override program defaults.
-      * @param config Servlet configuration
-      * @see #setLocalHost
-      */
-    public DefaultApplyXSLTProperties(ServletConfig config)
-    {
-	    super(config);
-	    String cat = config.getInitParameter("catalog");
-	    if (cat != null) DEFAULT_catalog = cat;
-	    else DEFAULT_catalog = null;
-	    setLocalHost();
-	    setSystemProperties();
-    }
-
-    /**
-      * Sets the name of the local IP host name; this value will be used to constrain untrusted 
-      * XML document and XSL stylesheet URLs to this trusted host.
-      * @see #getLocalHost
-      */
-    protected void setLocalHost()
-    {
-	    try 
-	    { 
-	        localHost = InetAddress.getLocalHost().getHostName();
-	    } 
-	    catch (Exception uhe) 
-	    {
-	      localHost = null;
-	    }
-    }
-
-    /**
-      * Returns the name of trusted IP host.
-      * @return Name of trusted host
-      * @see #setLocalHost
-      */
-    public String getLocalHost()
-    {
-	    return localHost;
-    }
-
-    /**
-      * Returns a URL which is constrained to a trusted IP host.
-      * @param xURL URL or file path to be made safe 
-      * @return Safe URL
-      * @exception MalformedURLException Thrown when xURL is not a valid URL
-      * @see #setLocalHost
-      * @see #getLocalHost
-      */
-    public URL toSafeURL(String xURL, HttpServletRequest request)
-    throws MalformedURLException
-    {
-      // Fix submitted by Ritesh Kumar. Port is included in construction of URL that is returned.
-      if (port == 0)
-        port = request.getServerPort();
-      
-	    if (xURL == null)
-	      return null;
-
-	    if (xURL.startsWith("/")) 
-      {
-	      try 
-        {
-		      return new URL("http", localHost, port, xURL);
-	      }
-        catch (MalformedURLException mue) 
-        {
-	        throw new MalformedURLException("toSafeURL(): " + xURL + 
-					                                " did not map to local");
-	      }
-	    }
-	    URL tempURL = null;
-	    try 
-      { 
-	      tempURL = new URL(xURL);
-	    } 
-      catch (MalformedURLException mue) 
-      {
-	      throw new MalformedURLException("toSafeURL(): " + xURL + 
-					                              " not a valid URL"); 
-	    }
-	    try 
-      { 
-	      return new URL(tempURL.getProtocol(), localHost, 
-			                 port, tempURL.getFile());
-	    } 
-      catch (MalformedURLException mue) 
-      {
-	      throw new MalformedURLException("toSafeURL(): " + xURL + 
-				                          	    " could not be converted to local host");
-	    }
-    }
-
-    /**
-      *	Returns a string representing the constrained URL for the XML document.
-      * If there is no request parameter for the XML document, return the configured default.
-      * @param request May contain an XML document URL parameter
-      * @return String form of XML URL
-      * @exception MalformedURLException Thrown when request URL is not a valid URL or path
-      * @see #toSafeURL
-      */
-    public String getXMLurl(HttpServletRequest request)
-    throws MalformedURLException
-    {
-	    URL url = toSafeURL(getRequestParmString(request, "URL"),request);
-	    if (url == null)
-	      return super.getXMLurl(null);
-	    return url.toExternalForm();
-    }
-
-    /**
-      * Returns a string representing the constrained URL for the XSL stylesheet 
-      * from the request.
-      * @param request May contain an XSL stylesheet URL parameter
-      * @return String form of request XSL URL, or null if request contains no xslURL parameter
-      * @exception MalformedURLException Thrown when request URL is not a valid URL or path
-      * @see #toSafeURL
-      */
-    public String getXSLRequestURL(HttpServletRequest request)
-    throws MalformedURLException
-    {
-	    URL url = toSafeURL(getRequestParmString(request, "xslURL"),request);
-	    if (url == null)
-	        return null;
-	    return url.toExternalForm();
-    }
-
-    /**
-      * Returns a string representing the constrained request URL for the XSL stylesheet.
-      * If there is no request parameter for the XSL stylesheet, return the configured default.
-      * @param request May contain an XSL stylesheet URL parameter
-      * @return String form of XSL URL
-      * @exception MalformedURLException Thrown when request URL is not a valid URL or path
-      * @see #toSafeURL
-      */
-    public String getXSLurl(HttpServletRequest request)
-    throws MalformedURLException
-    {
-	    String reqURL = getXSLRequestURL(request);
-	    if (reqURL != null)
-	        return reqURL;
-	    URL url = toSafeURL(super.getXSLurl(null), request);
-	    return url.toExternalForm();
-    }
-
-    /**
-      * Returns URLs for all <a href="http://www.ccil.org/~cowan/XML/XCatalog.html">XCatalogs</a> 
-      * that are to be used to process the request.  Catalogs are used to resolve XML public identifiers
-      * into system identifiers.
-      * <p>A single XCatalog can be configured as a default,
-      * but multiple XCatalogs can be specified at request time to augment the configured default.
-      * @param request May contain one or more XCatalog parameters
-      * @return Array of strings for all catalog URLs
-      */
-    public String[] getCatalog(HttpServletRequest request)
-    {
-	    String temp[] = request.getParameterValues("catalog");
-	    if (DEFAULT_catalog == null)
-	        return temp;
-	    if (temp == null) 
-      {
-	      String defaultArray[] = new String [1];
-	      defaultArray[0] = DEFAULT_catalog;
-	      return defaultArray;
-	    }
-	    int i, len = temp.length + 1;
-	    String newCatalogs[] = new String[len];
-	    newCatalogs[0] = DEFAULT_catalog;
-	    for (i=1; i < len; i++) 
-      {
-	      newCatalogs[i] = temp[i-1];
-	    }
-	    return newCatalogs;
-    }
-	
-	 /**
-   * I think we no longer need this. Sets the 3 jaxp core system properties.
-   */	
-    protected void setSystemProperties()
-	{
-	  Properties props = new Properties();
-    props.put("javax.xml.transform.TransformerFactory", 
-              "org.apache.xalan.processor.TransformerFactoryImpl");
-    props.put("javax.xml.parsers.DocumentBuilderFactory", 
-              "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
-    props.put("javax.xml.parsers.SAXParserFactory", 
-              "org.apache.xerces.jaxp.SAXParserFactoryImpl");
-    
-      Properties systemProps = System.getProperties();
-      Enumeration propEnum = props.propertyNames();
-      while(propEnum.hasMoreElements())
-      {
-        String prop = (String)propEnum.nextElement();
-        if(!systemProps.containsKey(prop))
-          systemProps.put(prop, props.getProperty(prop));
-      }
-      System.setProperties(systemProps);
-	}
-
-}
diff --git a/samples/servlet/SimpleXSLTServlet.java b/samples/servlet/SimpleXSLTServlet.java
deleted file mode 100644
index 82c9ef6e..00000000
--- a/samples/servlet/SimpleXSLTServlet.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-package servlet;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-import java.io.*;
-import java.net.URL;
-
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-
-/*
- * This sample applies the todo.xsl stylesheet to the
- * todo.xml XML document, and returns the transformation
- * output (HTML) to the client browser.
- *
- * IMPORTANT: For this to work, you must place todo.xsl and todo.xml 
- * in the servlet root directory for documents.
- *
- */
-
-public class SimpleXSLTServlet extends HttpServlet {
-
-  /**
-   * String representing the file separator characters for the System.
-   */
-  public final static String FS = System.getProperty("file.separator");
-  
-  public void init(ServletConfig config) throws ServletException
-  {
-    super.init(config);
-  }
-
-  public void doGet (HttpServletRequest request,
-                     HttpServletResponse response)
-    throws ServletException, IOException, java.net.MalformedURLException
-  {
-    // The servlet returns HTML.
-    response.setContentType("text/html; charset=UTF-8");    
-    // Output goes in the response stream.
-    PrintWriter out = response.getWriter();
-    try
-    {	
-      TransformerFactory tFactory = TransformerFactory.newInstance();
-      //get the real path for xml and xsl files.
-      String ctx = getServletContext().getRealPath("") + FS;
-      // Get the XML input document and the stylesheet.
-      Source xmlSource = new StreamSource(new URL("file", "", ctx+"birds.xml").openStream());
-      Source xslSource = new StreamSource(new URL("file", "", ctx+"birds.xsl").openStream());
-      // Generate the transformer.
-      Transformer transformer = tFactory.newTransformer(xslSource);
-      // Perform the transformation, sending the output to the response.
-      transformer.transform(xmlSource, new StreamResult(out));
-    }
-    catch (Exception e)
-    {
-      out.write(e.getMessage());
-      e.printStackTrace(out);    
-    }
-    out.close();
-  }
-  
-}
diff --git a/samples/servlet/UseStylesheetParamServlet.java b/samples/servlet/UseStylesheetParamServlet.java
deleted file mode 100644
index fdbcc54c..00000000
--- a/samples/servlet/UseStylesheetParamServlet.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-
-/*
-Simple Servlet Example using a stylesheet parameter
- */
-package servlet;
-// Imported TraX classes
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerConfigurationException;
-
-// Imported SAX classes
-import org.xml.sax.SAXException;
-
-// Imported java.io and javax.servlet classes
-import java.io.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-public class UseStylesheetParamServlet extends HttpServlet {
-	
-
-   /**
-    * String representing the file separator characters for the System.
-    */
-    public final static String FS = System.getProperty("file.separator");
-    
-	PrintWriter out;
-	String xslFile, xmlFile, paramValue;
-	public void doGet(HttpServletRequest req,
-		HttpServletResponse res)
-			throws ServletException, IOException {
-		try {
-			res.setContentType("text/html; charset=UTF-8");
-			out = res.getWriter();
-
-      paramValue = req.getParameter("PVAL");
-			xmlFile    = req.getParameter("XML");
-			xslFile    = req.getParameter("XSL");
- 		if (paramValue == null) {
-			out.println(
-			"<h1>No input for paramValue</h1>");
-			return;
-		}
- 		if ( xmlFile == null) {
-			out.println(
-			"<h1>No input for xmlFile</h1>");
-			return;
-		}	
-		if ( xslFile == null) {
-			out.println(
-			"<h1>No input for xslFile</h1>");
-			return;
-		}
-        
-        // get the real path for xml and xsl files;
-        String ctx = getServletContext().getRealPath("") + FS;
-        xslFile = ctx + xslFile;
-        xmlFile = ctx + xmlFile;
-         
-		TransformerFactory tFactory =
-			TransformerFactory.newInstance();
-		Transformer transformer =
-			tFactory.newTransformer(new StreamSource(xslFile));
-
-    // Set the stylesheet parameter (named param1).
-			transformer.setParameter("param1", paramValue);
-    // Perform the transformation.
-			transformer.transform(new StreamSource(xmlFile),
-					                  new StreamResult(out));
-		}		
-    catch (IOException e) {			
-			e.printStackTrace();
-			System.exit(-1);
-		}
-		catch (TransformerException e) {
-      e.printStackTrace(out);
-			return;
-		}
-	}
-}
diff --git a/samples/servlet/XSLTServletWithParams.java b/samples/servlet/XSLTServletWithParams.java
deleted file mode 100644
index eb60e47d..00000000
--- a/samples/servlet/XSLTServletWithParams.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * 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.
- */
-/*
- * $Id$
- */
-package servlet;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import java.io.*;
-import java.util.Enumeration;
-import java.net.URL;
-
-import org.xml.sax.*;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-
-/*
- * This sample takes input parameters in the request URL: a URL
- * parameter for the XML input, an xslURL parameter for the stylesheet,
- * and optional stylesheet parameters.
- * To run the equivalent of SimplestXSLServlet (with the documents in the
- * servlet document root directory), the request URL is
- * http://<server/servletpath>servlet.SimpleXSLServlet?URL=file:todo.xml&xslURL=file:todo.xsl
- *
- * Using a stylesheet Processing Instruction:
- * If the XML document includes a stylesheet PI that you want to use, 
- * omit the xslURL parameter.
- *
- * Sending stylesheet parameters: 
- * If, for example, a servlet takes a stylesheet parameter named param1
- * param1 that you want to set to foo, include param1=foo in the URL.
- */
-
-public class XSLTServletWithParams extends HttpServlet {
-
-  /**
-   * String representing the file separator characters for the System.
-   */
-  public final static String FS = System.getProperty("file.separator");
-  
-  public void init(ServletConfig config) throws ServletException
-  {
-    super.init(config);
-  }
-
-  public void doGet (HttpServletRequest request,
-                     HttpServletResponse response)
-    throws ServletException, IOException
-  {
-    // The servlet returns HTML; charset is UTF8.
-    // See ApplyXSLT.getContentType() to get output properties from <xsl:output>.
-    response.setContentType("text/html; charset=UTF-8"); 
-    PrintWriter out = response.getWriter();
-    try
-    {	
-      TransformerFactory tFactory = TransformerFactory.newInstance();
-      // Get params from URL.
-      String xml = getRequestParam(request, "URL");
-      String xsl = getRequestParam(request, "xslURL");
-      Source xmlSource = null;
-      Source xslSource = null;
-      Transformer transformer = null;
-//get the real path for xml and xsl files.
-      String ctx = getServletContext().getRealPath("") + FS;
-      
-      // Get the XML input document.
-      if (xml != null && xml.length()> 0)
-        xmlSource = new StreamSource(new URL("file", "", ctx + xml).openStream());
-      // Get the stylesheet.
-      if (xsl != null && xsl.length()> 0)
-        xslSource = new StreamSource(new URL("file", "", ctx + xsl).openStream());
-      if (xmlSource != null) // We have an XML input document.
-      {
-        if (xslSource == null) // If no stylesheet, look for PI in XML input document.
-        {
-     	    String media= null , title = null, charset = null;
-          xslSource = tFactory.getAssociatedStylesheet(xmlSource,media, title, charset);
-        }
-        if (xslSource != null) // Now do we have a stylesheet?
-        {
-          transformer = tFactory.newTransformer(xslSource);
-          setParameters(transformer, request); // Set stylesheet params.
-          // Perform the transformation.
-          transformer.transform(xmlSource, new StreamResult(out)); 
-        }
-        else
-          out.write("No Stylesheet!");
-      }
-      else
-        out.write("No XML Input Document!");
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace(out);    
-    }
-    out.close();
-  }
-  
-  // Get parameters from the request URL.
-  String getRequestParam(HttpServletRequest request, String param)
-  {
-	  if (request != null) 
-    { 
-	    String paramVal = request.getParameter(param); 
-		  return paramVal;
-	  }
-	  return null;
-  }
-  
-  // Set stylesheet parameters from the request URL.
-  void setParameters(Transformer transformer, HttpServletRequest request)
-  {
-    Enumeration paramNames = request.getParameterNames();
-    while (paramNames.hasMoreElements())
-    {
-      String paramName = (String) paramNames.nextElement();
-      try
-      {
-        String paramVal = request.getParameter(paramName);
-        if (paramVal != null)
-          transformer.setParameter(paramName, paramVal);                                            
-      }
-      catch (Exception e)
-      {
-      }
-    }
-  }  
-}
diff --git a/samples/src/main/java/org/apache/xalan/App.java b/samples/src/main/java/org/apache/xalan/App.java
new file mode 100644
index 00000000..b1d7b04e
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/App.java
@@ -0,0 +1,13 @@
+package org.apache.xalan.samples;
+
+/**
+ * Hello world!
+ *
+ */
+public class App 
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}
diff --git a/samples/AppletXMLtoHTML/README.html b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/README.html
similarity index 100%
rename from samples/AppletXMLtoHTML/README.html
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/README.html
diff --git a/samples/AppletXMLtoHTML/appletXMLtoHTML.html b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/appletXMLtoHTML.html
similarity index 100%
rename from samples/AppletXMLtoHTML/appletXMLtoHTML.html
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/appletXMLtoHTML.html
diff --git a/samples/AppletXMLtoHTML/client.html b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/client.html
similarity index 100%
rename from samples/AppletXMLtoHTML/client.html
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/client.html
diff --git a/samples/AppletXMLtoHTML/foo-s1.xml b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/foo-s1.xml
similarity index 100%
rename from samples/AppletXMLtoHTML/foo-s1.xml
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/foo-s1.xml
diff --git a/samples/AppletXMLtoHTML/lts3611beac.jpg b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/lts3611beac.jpg
similarity index 100%
rename from samples/AppletXMLtoHTML/lts3611beac.jpg
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/lts3611beac.jpg
diff --git a/samples/AppletXMLtoHTML/rabbitwhorn.jpg b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/rabbitwhorn.jpg
similarity index 100%
rename from samples/AppletXMLtoHTML/rabbitwhorn.jpg
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/rabbitwhorn.jpg
diff --git a/samples/AppletXMLtoHTML/s1ToHTML.xsl b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/s1ToHTML.xsl
similarity index 100%
rename from samples/AppletXMLtoHTML/s1ToHTML.xsl
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/s1ToHTML.xsl
diff --git a/samples/AppletXMLtoHTML/target.html b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/target.html
similarity index 100%
copy from samples/AppletXMLtoHTML/target.html
copy to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/target.html
diff --git a/samples/AppletXMLtoHTML/trax.xml b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/trax.xml
similarity index 100%
rename from samples/AppletXMLtoHTML/trax.xml
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/trax.xml
diff --git a/samples/AppletXMLtoHTML/xalanApplets.xml b/samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/xalanApplets.xml
similarity index 100%
rename from samples/AppletXMLtoHTML/xalanApplets.xml
rename to samples/src/main/java/org/apache/xalan/samples/AppletXMLtoHTML/xalanApplets.xml
diff --git a/samples/src/main/java/org/apache/xalan/samples/ApplyXPath/ApplyXPath.java b/samples/src/main/java/org/apache/xalan/samples/ApplyXPath/ApplyXPath.java
new file mode 100644
index 00000000..222cfe4e
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/ApplyXPath/ApplyXPath.java
@@ -0,0 +1,142 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+// This file uses 4 space indents, no tabs.
+package org.apache.xalan.samples.ApplyXPath;
+
+import java.io.FileInputStream;
+import java.io.OutputStreamWriter;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.xpath.XPathAPI;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.traversal.NodeIterator;
+import org.xml.sax.InputSource;
+
+/**
+ *  Very basic utility for applying an XPath epxression to an xml file and printing information
+ /  about the execution of the XPath object and the nodes it finds.
+ *  Takes 2 arguments:
+ *     (1) an xml filename
+ *     (2) an XPath expression to apply to the file
+ *  Examples:
+ *     java ApplyXPath foo.xml /
+ *     java ApplyXPath foo.xml /doc/name[1]/@last
+ * @see XPathAPI
+ */
+public class ApplyXPath
+{
+  protected String filename = null;
+  protected String xpath = null;
+
+  /** Process input args and execute the XPath.  */
+  public void doMain(String[] args)
+    throws Exception
+  {
+    filename = args[0];
+    xpath = args[1];
+
+    if ((filename != null) && (filename.length() > 0)
+        && (xpath != null) && (xpath.length() > 0))
+    {
+      // Tell that we're loading classes and parsing, so the time it 
+      // takes to do this doesn't get confused with the time to do 
+      // the actual query and serialization.
+      System.out.println("Loading classes, parsing "+filename+", and setting up serializer");
+      
+      // Set up a DOM tree to query.
+      InputSource in = new InputSource(new FileInputStream(filename));
+      DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
+      dfactory.setNamespaceAware(true);
+      Document doc = dfactory.newDocumentBuilder().parse(in);
+      
+      // Set up an identity transformer to use as serializer.
+      Transformer serializer = TransformerFactory.newInstance().newTransformer();
+      serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+
+      // Use the simple XPath API to select a nodeIterator.
+      System.out.println("Querying DOM using "+xpath);
+      NodeIterator nl = XPathAPI.selectNodeIterator(doc, xpath);
+
+      // Serialize the found nodes to System.out.
+      System.out.println("<output>");
+                  
+      Node n;
+      while ((n = nl.nextNode())!= null)
+      {         
+	if (isTextNode(n)) {
+	    // DOM may have more than one node corresponding to a 
+	    // single XPath text node.  Coalesce all contiguous text nodes
+	    // at this level
+	    StringBuffer sb = new StringBuffer(n.getNodeValue());
+	    for (
+	      Node nn = n.getNextSibling(); 
+	      isTextNode(nn);
+	      nn = nn.getNextSibling()
+	    ) {
+	      sb.append(nn.getNodeValue());
+	    }
+	    System.out.print(sb);
+	}
+	else {
+         serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(System.out)));
+	}
+        System.out.println();
+      }
+      System.out.println("</output>");
+    }
+    else
+    {
+      System.out.println("Bad input args: " + filename + ", " + xpath);
+    }
+  }
+  
+  /** Decide if the node is text, and so must be handled specially */
+  static boolean isTextNode(Node n) {
+    if (n == null)
+      return false;
+    short nodeType = n.getNodeType();
+    return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.TEXT_NODE;
+  }
+
+  /** Main method to run from the command line.    */
+  public static void main (String[] args)
+    throws Exception
+  {
+    if (args.length != 2)
+    {
+      System.out.println("java ApplyXPath filename.xml xpath\n"
+                         + "Reads filename.xml and applies the xpath; prints the nodelist found.");
+      return;
+    }
+        
+    ApplyXPath app = new ApplyXPath();
+    app.doMain(args);
+  }	
+  
+} // end of class ApplyXPath
+
diff --git a/samples/ApplyXPath/foo.xml b/samples/src/main/java/org/apache/xalan/samples/ApplyXPath/foo.xml
similarity index 100%
rename from samples/ApplyXPath/foo.xml
rename to samples/src/main/java/org/apache/xalan/samples/ApplyXPath/foo.xml
diff --git a/samples/ApplyXPath/readme.html b/samples/src/main/java/org/apache/xalan/samples/ApplyXPath/readme.html
similarity index 100%
copy from samples/ApplyXPath/readme.html
copy to samples/src/main/java/org/apache/xalan/samples/ApplyXPath/readme.html
diff --git a/samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/ApplyXPathDOM.java b/samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/ApplyXPathDOM.java
new file mode 100644
index 00000000..244eff06
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/ApplyXPathDOM.java
@@ -0,0 +1,157 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+// This file uses 4 space indents, no tabs.
+
+package org.apache.xalan.samples.ApplyXPathDOM;
+
+
+import java.io.FileInputStream;
+import java.io.OutputStreamWriter;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.xpath.domapi.XPathEvaluatorImpl;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.xpath.XPathEvaluator;
+import org.w3c.dom.xpath.XPathNSResolver;
+import org.w3c.dom.xpath.XPathResult;
+import org.xml.sax.InputSource;
+
+/**
+ *  Very basic utility for applying the DOM L3 XPath API (currently in Last Call)
+ *  to an xml file and printing information about the execution of the XPath object 
+ *  and the nodes it finds.
+ *  Takes 2 arguments:
+ *     (1) an xml filename
+ *     (2) an XPath expression to apply to the file
+ *  Examples:
+ *     java ApplyXPathDOM foo.xml /
+ *     java ApplyXPathDOM foo.xml /doc/name[1]/@last
+ *
+ *<p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
+ * @see XPathEvaluator
+ * 
+ */
+public class ApplyXPathDOM
+{
+  protected String filename = null;
+  protected String xpath = null;
+
+  /** Process input args and execute the XPath.  */
+  public void doMain(String[] args)
+    throws Exception
+  {
+    filename = args[0];
+    xpath = args[1];
+
+    if ((filename != null) && (filename.length() > 0)
+        && (xpath != null) && (xpath.length() > 0))
+    {
+      // Tell that we're loading classes and parsing, so the time it 
+      // takes to do this doesn't get confused with the time to do 
+      // the actual query and serialization.
+      System.out.println("Loading classes, parsing "+filename+", and setting up serializer");
+      
+      // Set up a DOM tree to query.
+      InputSource in = new InputSource(new FileInputStream(filename));
+      DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
+      dfactory.setNamespaceAware(true);
+      Document doc = dfactory.newDocumentBuilder().parse(in);
+      
+      // Set up an identity transformer to use as serializer.
+      Transformer serializer = TransformerFactory.newInstance().newTransformer();
+      serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+
+      // Use the DOM L3 XPath API to apply the xpath expression to the doc.
+      System.out.println("Querying DOM using "+xpath);
+      
+      // Create an XPath evaluator and pass in the document.
+      XPathEvaluator evaluator = new XPathEvaluatorImpl(doc);
+      XPathNSResolver resolver = evaluator.createNSResolver(doc);
+      
+      // Evaluate the xpath expression
+      XPathResult result = (XPathResult)evaluator.evaluate(xpath, doc, resolver, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
+      
+
+      // Serialize the found nodes to System.out.
+      System.out.println("<output>");
+                  
+      Node n;
+      while ((n = result.iterateNext())!= null)
+      {         
+        if (isTextNode(n)) {
+	    // DOM may have more than one node corresponding to a 
+	    // single XPath text node.  Coalesce all contiguous text nodes
+	    // at this level
+	    StringBuffer sb = new StringBuffer(n.getNodeValue());
+	    for (
+	      Node nn = n.getNextSibling(); 
+	      isTextNode(nn);
+	      nn = nn.getNextSibling()
+	    ) {
+	      sb.append(nn.getNodeValue());
+	    }
+	    System.out.print(sb);
+	}
+	else {
+         serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(System.out)));
+	}
+        System.out.println();
+      }
+      System.out.println("</output>");
+    }
+    else
+    {
+      System.out.println("Bad input args: " + filename + ", " + xpath);
+    }
+  }
+  
+  /** Decide if the node is text, and so must be handled specially */
+  static boolean isTextNode(Node n) {
+    if (n == null)
+      return false;
+    short nodeType = n.getNodeType();
+    return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.TEXT_NODE;
+  }
+
+  /** Main method to run from the command line.    */
+  public static void main (String[] args)
+    throws Exception
+  {
+    if (args.length != 2)
+    {
+      System.out.println("java ApplyXPathDOM filename.xml xpath\n"
+                         + "Reads filename.xml and applies the xpath; prints the nodelist found.");
+      return;
+    }
+        
+    ApplyXPathDOM app = new ApplyXPathDOM();
+    app.doMain(args);
+  }	
+  
+} // end of class ApplyXPathDOM
+
diff --git a/samples/ApplyXPathDOM/foo.xml b/samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/foo.xml
similarity index 100%
rename from samples/ApplyXPathDOM/foo.xml
rename to samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/foo.xml
diff --git a/samples/ApplyXPathDOM/readme.html b/samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/readme.html
similarity index 100%
rename from samples/ApplyXPathDOM/readme.html
rename to samples/src/main/java/org/apache/xalan/samples/ApplyXPathDOM/readme.html
diff --git a/samples/CompiledApplet/README.applet b/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/README.applet
similarity index 100%
rename from samples/CompiledApplet/README.applet
rename to samples/src/main/java/org/apache/xalan/samples/CompiledApplet/README.applet
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/TransformApplet.java b/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/TransformApplet.java
new file mode 100644
index 00000000..b1cc0433
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/TransformApplet.java
@@ -0,0 +1,261 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledApplet;
+
+import java.applet.Applet;
+
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.Frame;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.ErrorListener;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+/**
+ * This applet demonstrates how XSL transformations can be made to run in
+ * browsers without native XSLT support.
+ *
+ * Note that the XSLTC transformation engine is invoked through the JAXP
+ * interface, using the XSLTC "use-classpath" attribute.  The
+ * "use-classpath" attribute specifies to the XSLTC TransformerFactory
+ * that a precompiled version of the stylesheet (translet) may be available,
+ * and that that should be used in preference to recompiling the stylesheet.
+ * @author Morten Jorgensen
+ * @author Jacek Ambroziak
+ */
+public final class TransformApplet extends Applet {
+    TransformerFactory tf;
+    TransformDelegate transformThread;
+    /**
+     * This class implements a dialog box used for XSL messages/comments
+     */
+    public class MessageFrame extends Frame {
+
+        public Frame frame;
+
+        public class ButtonHandler implements ActionListener {
+            public void actionPerformed(ActionEvent e) {
+                frame.setVisible(false);
+            }
+        }
+
+        /**
+         * This method handles xml:message and xsl:comment by displaying
+         * the message/comment in a dialog box.
+         */
+        public MessageFrame(String title, String message) {
+            super(title);
+            frame = this; // Make visible to ButtonHandler
+            setSize(320,200);
+
+            // Create a panel for the message itself
+            Panel center = new Panel();
+            center.add(new Label(message));
+
+            // Create a panel for the 'OK' button
+            Panel bottom = new Panel();
+            Button okButton = new Button("   OK   ");
+            okButton.addActionListener(new ButtonHandler());
+            bottom.add(okButton);
+
+            // Add the two panels to the window/frame
+            add(center, BorderLayout.CENTER);
+            add(bottom,BorderLayout.SOUTH);
+
+            // Show the whole thing
+            setVisible(true);
+        }
+
+    }
+
+    /**
+     * The applet uses this method to display messages and comments
+     * generated by xsl:message and xsl:comment elements.
+     */
+    public class AppletErrorListener implements ErrorListener {
+        public void displayMessage(TransformerException e) {
+            MessageFrame z = new MessageFrame("XSL transformation alert",
+                                              e.getMessageAndLocation());
+        }
+
+        public void error(TransformerException e) {
+            displayMessage(e);
+        }
+
+        public void fatalError(TransformerException e) {
+            displayMessage(e);
+        }
+
+        public void warning(TransformerException e) {
+                    displayMessage(e);
+        }
+    }
+
+    /**
+     * This method is the main body of the applet. The method is called
+     * by some JavaScript code in an HTML document.
+     */
+    public synchronized String transform(Object arg1, Object arg2) {
+        final String stylesheetURL = (String)arg1;
+        final String documentURL = (String)arg2;
+
+        transformThread.setStylesheetURL(stylesheetURL);
+        transformThread.setDocumentURL(documentURL);
+        transformThread.setWaiting(false);
+        transformThread.wakeUp();
+        try{
+            wait();
+        } catch (InterruptedException e){}
+        return transformThread.getOutput();
+    }
+
+    public void start() {
+        transform(getParameter("stylesheet-name"),
+                  getParameter("input-document"));
+    }
+    public void destroy() {
+        transformThread.destroy();
+    }
+    public void init() {
+        tf = TransformerFactory.newInstance();
+        try {
+            tf.setAttribute("use-classpath", Boolean.TRUE);
+        } catch (IllegalArgumentException iae) {
+            System.err.println("Could not set XSLTC-specific TransformerFactory"
+                               + " attributes.  Transformation failed.");
+        }
+        // Another thread is created to keep the context class loader
+        // information.  When use JDK 1.4 plugin for browser, to get around the
+        // problem with the bundled old version of xalan and endorsed class
+        // loading mechanism
+        transformThread = new TransformDelegate(true);
+        Thread t = new Thread(transformThread);
+        t.setName("transformThread");
+        t.start();
+    }
+    public String getOutput(){
+        return transformThread.getOutput();
+    }
+    public synchronized void wakeUp() {
+        notifyAll();
+    }
+    class TransformDelegate implements Runnable {
+        private boolean isRunning, isWaiting;
+        private String stylesheetURL, documentURL;
+        private String outPut;
+        public TransformDelegate(boolean arg) {
+            isRunning = arg;
+            isWaiting = true;
+        }
+        public synchronized void run() {
+            while(isRunning){
+                while(isWaiting){
+                    try {
+                        wait();
+                    } catch (InterruptedException e){}
+                }
+                transform();
+                isWaiting = true;
+                TransformApplet.this.wakeUp();
+            }
+        }
+
+        public void setStylesheetURL(String arg){
+            stylesheetURL = arg;
+        }
+        public void setDocumentURL(String arg) {
+            documentURL = arg;
+        }
+        public String getStylesheetURL(){
+            return stylesheetURL;
+        }
+        public String getDocumentURL() {
+            return documentURL;
+        }
+        public void setWaiting(boolean arg) {
+            isWaiting = arg;
+        }
+        public void destroy() {
+            isRunning = false;
+        }
+        public synchronized void wakeUp() {
+            notifyAll();
+        }
+        public String getOutput(){
+            return outPut;
+        }
+
+        public void transform(){
+            String xslURL = getStylesheetURL();
+            String docURL = getDocumentURL();
+            // Initialise the output stream
+            StringWriter sout = new StringWriter();
+            PrintWriter out = new PrintWriter(sout);
+            // Check that the parameters are valid
+            try {
+                if (xslURL == null || docURL == null) {
+                    out.println("<h1>Transformation error</h1>");
+                    out.println("The parameters <b><tt>stylesheetURL</tt></b> "+
+                                "and <b><tt>source</tt></b> must be specified");
+                } else {
+                    Transformer t = tf.newTransformer(new StreamSource(xslURL));
+                    t.setErrorListener(new AppletErrorListener());
+
+                    final long start = System.currentTimeMillis();
+
+                    t.transform(new StreamSource(docURL),
+                                new StreamResult(out));
+
+                    final long done = System.currentTimeMillis() - start;
+                    out.println("<!-- transformed by XSLTC in " + done
+                                + "msecs -->");
+                }
+                // Now close up the sink, and return the HTML output in the
+                // StringWrite object as a string.
+                out.close();
+                System.err.println("Transformation complete!");
+                System.err.println(sout.toString());
+                outPut = sout.toString();
+                sout.close();
+            } catch (RuntimeException e) {
+                out.println("<h1>RTE</h1>");
+                out.close();
+                outPut = sout.toString();
+            } catch (Exception e) {
+                out.println("<h1>exception</h1>");
+                out.println(e.toString());
+                out.close();
+                outPut = sout.toString();
+            }
+        }
+    }
+}
diff --git a/samples/CompiledApplet/index.html b/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/index.html
similarity index 100%
rename from samples/CompiledApplet/index.html
rename to samples/src/main/java/org/apache/xalan/samples/CompiledApplet/index.html
diff --git a/samples/CompiledApplet/menu.html b/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/menu.html
similarity index 100%
rename from samples/CompiledApplet/menu.html
rename to samples/src/main/java/org/apache/xalan/samples/CompiledApplet/menu.html
diff --git a/samples/CompiledApplet/singleTransform.html b/samples/src/main/java/org/apache/xalan/samples/CompiledApplet/singleTransform.html
similarity index 100%
rename from samples/CompiledApplet/singleTransform.html
rename to samples/src/main/java/org/apache/xalan/samples/CompiledApplet/singleTransform.html
diff --git a/samples/CompiledBrazil/README.brazil b/samples/src/main/java/org/apache/xalan/samples/CompiledBrazil/README.brazil
similarity index 100%
rename from samples/CompiledBrazil/README.brazil
rename to samples/src/main/java/org/apache/xalan/samples/CompiledBrazil/README.brazil
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledBrazil/TransformHandler.java b/samples/src/main/java/org/apache/xalan/samples/CompiledBrazil/TransformHandler.java
new file mode 100644
index 00000000..23f354b6
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledBrazil/TransformHandler.java
@@ -0,0 +1,155 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledBrazil;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import java.util.StringTokenizer;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.ErrorListener;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import sunlabs.brazil.server.Handler;
+import sunlabs.brazil.server.Request;
+import sunlabs.brazil.server.Server;
+
+/**
+ * This Brazil handler demonstrates how XSL transformations can be made
+ * available as a web service without using a full web server. This class
+ * implements the Handler interface from the Brazil project, see:
+ * http://www.sun.com/research/brazil/
+ *
+ * Note that the XSLTC transformation engine is invoked through the JAXP
+ * interface, using the XSLTC "use-classpath" attribute.  The
+ * "use-from-classpath" attribute specifies to the XSLTC TransformerFactory
+ * that a precompiled version of the stylesheet (translet) may be available,
+ * and that should be used in preference to recompiling the stylesheet.
+ * @author Morten Jorgensen
+ */
+public class TransformHandler implements Handler {
+
+    private TransformerFactory m_tf = null;
+
+    // These two are used while parsing the parameters in the URL
+    private final String PARAM_TRANSLET = "translet=";
+    private final String PARAM_DOCUMENT = "document=";
+    private final String PARAM_STATS = "stats=";
+
+    // All output goes here:
+    private PrintWriter m_out = null;
+
+    /**
+     * Dump an error message to output
+     */
+    public void errorMessage(String message, Exception e) {
+	if (m_out == null) {
+            return;
+        }
+	m_out.println("<h1>XSL transformation error</h1>"+message);
+	m_out.println("<br>Exception:</br>"+e.toString());
+    }
+
+    public void errorMessage(String message) {
+	if (m_out == null) return;
+	m_out.println("<h1>XSL transformation error</h1>"+message);
+    }
+
+    /**
+     * This method is run when the Brazil proxy is loaded
+     */
+    public boolean init(Server server, String prefix) {
+	return true;
+    }
+
+    /**
+     * This method is run for every HTTP request sent to the proxy
+     */
+    public boolean respond(Request request) throws IOException {
+
+	// Initialise the output buffer
+	final StringWriter sout = new StringWriter();
+	m_out = new PrintWriter(sout);
+
+	// These two hold the parameters from the URL 'translet' and 'document'
+	String transletName = null;
+	String document = null;
+	String stats = null;
+
+	// Get the parameters from the URL
+	final StringTokenizer params = new StringTokenizer(request.query,"&");
+	while (params.hasMoreElements()) {
+	    final String param = params.nextToken();
+	    if (param.startsWith(PARAM_TRANSLET)) {
+		transletName = param.substring(PARAM_TRANSLET.length());
+	    }
+	    else if (param.startsWith(PARAM_DOCUMENT)) {
+		document = param.substring(PARAM_DOCUMENT.length());
+	    }
+	    else if (param.startsWith(PARAM_STATS)) {
+		stats = param.substring(PARAM_STATS.length());
+	    }
+	}
+
+	try {
+	    // Make sure that both parameters were specified
+	    if ((transletName == null) || (document == null)) {
+		errorMessage("Parameters <b><tt>translet</tt></b> and/or "+
+			     "<b><tt>document</tt></b> not specified.");
+	    }
+	    else {
+                if (m_tf == null) {
+                    m_tf = TransformerFactory.newInstance();
+                    try {
+                        m_tf.setAttribute("use-classpath", Boolean.TRUE);
+                    } catch (IllegalArgumentException iae) {
+                        System.err.println(
+                            "Could not set XSLTC-specific TransformerFactory "
+                          + "attributes.  Transformation failed.");
+                    }
+                }
+                Transformer t =
+                     m_tf.newTransformer(new StreamSource(transletName));
+
+		// Do the actual transformation
+		final long start = System.currentTimeMillis();
+		t.transform(new StreamSource(document),
+                            new StreamResult(m_out));
+		final long done = System.currentTimeMillis() - start;
+		m_out.println("<!-- transformed by XSLTC in "+done+"ms -->");
+	    }
+	}
+	catch (Exception e) {
+	    errorMessage("Internal error.",e);
+	}
+
+	// Pass the transformation output as the HTTP response
+	request.sendResponse(sout.toString());
+	return true;
+    }
+
+
+}
diff --git a/samples/CompiledEJB/README.ejb b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/README.ejb
similarity index 100%
rename from samples/CompiledEJB/README.ejb
rename to samples/src/main/java/org/apache/xalan/samples/CompiledEJB/README.ejb
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformBean.java b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformBean.java
new file mode 100644
index 00000000..c2da697a
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformBean.java
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledEJB;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.ErrorListener;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import javax.ejb.SessionBean;
+import javax.ejb.SessionContext;
+
+/**
+ * @author Morten Jorgensen
+ */
+public class TransformBean implements SessionBean {
+
+    private SessionContext m_context = null;
+    
+    private final static String nullErrorMsg =
+	"<h1>XSL transformation error</h1>"+
+	"<p>'null' parameters sent to the XSL transformation bean's "+
+	"<tt>transform(String document, String translet)</tt> method.</p>";
+
+    private static final String NAMESPACE_FEATURE =
+	"http://xml.org/sax/features/namespaces";
+
+    /**
+     * Generates HTML from a basic error message and an exception
+     */
+    private void errorMsg(PrintWriter out, Exception e, String msg) {
+	out.println("<h1>Error</h1>");
+	out.println("<p>"+msg+"</p><br>");
+	out.println(e.toString());
+    }
+
+    /**
+     * Main bean entry point
+     */
+    public String transform(String document, String transletName) {
+
+	// Initialise the output stream
+	final StringWriter sout = new StringWriter();
+	final PrintWriter out = new PrintWriter(sout);
+
+	try {
+	    if ((document == null) || (transletName == null)) {
+		out.println(nullErrorMsg);
+	    }
+	    else {
+                TransformerFactory tf = TransformerFactory.newInstance();
+                try {
+                    tf.setAttribute("use-classpath", Boolean.TRUE);
+                } catch (IllegalArgumentException iae) {
+                    System.err.println(
+                        "Could not set XSLTC-specific TransformerFactory "
+                      + "attributes.  Transformation failed.");
+                }
+
+                Transformer t =
+                    tf.newTransformer(new StreamSource(transletName));
+
+                // Do the actual transformation
+                final long start = System.currentTimeMillis();
+                t.transform(new StreamSource(document),
+                            new StreamResult(out));
+                final long done = System.currentTimeMillis() - start;
+                out.println("<!-- transformed by XSLTC in "+done+"msecs -->");
+	    }
+	}
+
+	catch (Exception e) {
+	    errorMsg(out, e, "Impossible state reached.");
+	}
+
+	// Now close up the sink, and return the HTML output in the
+	// StringWrite object as a string.
+	out.close();
+	return sout.toString();
+    }
+
+    /**
+     *
+     */
+    public void setSessionContext(SessionContext context) {
+	m_context = context;
+    }
+
+    // General EJB entry points
+    public void ejbCreate() { }
+    public void ejbRemove() { }
+    public void ejbActivate() { }
+    public void ejbPassivate() { }
+    public void ejbLoad() { }
+    public void ejbStore() { }
+}
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformHome.java b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformHome.java
new file mode 100644
index 00000000..c2404c17
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformHome.java
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledEJB;
+
+
+import java.rmi.RemoteException;
+
+import javax.ejb.CreateException;
+import javax.ejb.EJBHome;
+
+/**
+ * XSL transformation bean home interface
+ * @author Morten Jorgensen
+ */
+public interface TransformHome extends EJBHome {
+    TransformRemote create() throws CreateException, RemoteException;
+}
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformRemote.java b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformRemote.java
new file mode 100644
index 00000000..71622dfd
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformRemote.java
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledEJB;
+
+
+import java.rmi.RemoteException;
+
+import javax.ejb.EJBObject;
+
+/**
+ * XSL transformation bean remote interface
+ * @author Morten Jorgensen
+ */
+public interface TransformRemote extends EJBObject {
+    public String transform(String document, String transletName) 
+	throws RemoteException;
+}
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformServlet.java b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformServlet.java
new file mode 100644
index 00000000..79fd09b4
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/TransformServlet.java
@@ -0,0 +1,92 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledEJB;
+
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.naming.InitialContext;
+import javax.rmi.PortableRemoteObject;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author Morten Jorgensen
+ */
+public class TransformServlet extends HttpServlet {
+
+    // Error message used when the XSL transformation bean cannot be created
+    private final static String createErrorMsg =
+	"<h1>XSL transformation bean error</h1>"+
+	"<p>An XSL transformation bean could not be created.</p>";
+
+    // Transformer - "more than meets the eye".
+    private TransformHome transformer;
+
+    /**
+     * Servlet initializer - look up the bean's home interface
+     */
+    public void init(ServletConfig config) 
+	throws ServletException{
+	try{
+	    InitialContext context = new InitialContext();
+	    Object transformRef = context.lookup("transform");
+	    transformer =
+		(TransformHome)PortableRemoteObject.narrow(transformRef,
+							   TransformHome.class);
+	} catch (Exception NamingException) {
+	    NamingException.printStackTrace();
+	}
+    }
+
+    /**
+     * Handles "GET" HTTP requests - ie. runs the actual transformation
+     */
+    public void doGet (HttpServletRequest request, 
+		       HttpServletResponse response) 
+	throws ServletException, IOException {
+
+	String document = request.getParameter("document");
+	String translet = request.getParameter("translet");
+
+	response.setContentType("text/html");
+
+	PrintWriter out = response.getWriter();
+	try{
+	    // Get the insult from the bean
+	    TransformRemote xslt = transformer.create();
+	    String result = xslt.transform(document, translet);
+	    out.println(result);
+	} catch(Exception CreateException){
+	    out.println(createErrorMsg);
+	}
+	out.close();
+    }
+
+    public void destroy() {
+	System.out.println("Destroy");
+    }
+}
diff --git a/samples/CompiledEJB/bottom_frame.html b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/bottom_frame.html
similarity index 100%
rename from samples/CompiledEJB/bottom_frame.html
rename to samples/src/main/java/org/apache/xalan/samples/CompiledEJB/bottom_frame.html
diff --git a/samples/CompiledEJB/index.html b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/index.html
similarity index 100%
rename from samples/CompiledEJB/index.html
rename to samples/src/main/java/org/apache/xalan/samples/CompiledEJB/index.html
diff --git a/samples/CompiledEJB/top_frame.html b/samples/src/main/java/org/apache/xalan/samples/CompiledEJB/top_frame.html
similarity index 100%
rename from samples/CompiledEJB/top_frame.html
rename to samples/src/main/java/org/apache/xalan/samples/CompiledEJB/top_frame.html
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/Compile.java b/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/Compile.java
new file mode 100644
index 00000000..64c0ee1c
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/Compile.java
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledJAXP;
+
+import javax.xml.transform.Templates;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
+
+public class Compile {
+
+    public static void main(String[] args){
+        Compile app = new Compile();
+        app.run(args[0]);
+    }
+
+    /**
+     * Compiles an XSL stylesheet into a translet, wraps the translet
+     * inside a Templates object and dumps it to a file.
+     */
+    public void run(String xsl) {
+        try {
+            // Set XSLTC's TransformerFactory implementation as the default
+            System.setProperty("javax.xml.transform.TransformerFactory",
+                         "org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
+
+	    // Get an input stream for the XSL stylesheet
+	    StreamSource stylesheet = new StreamSource(xsl);
+
+	    // The TransformerFactory will compile the stylesheet and
+	    // put the translet classes inside the Templates object
+	    TransformerFactory factory = TransformerFactory.newInstance();
+            factory.setAttribute("generate-translet", Boolean.TRUE);
+	    Templates templates = factory.newTemplates(stylesheet);
+        }
+	catch (Exception e) {
+            System.err.println("Exception: " + e); 
+	    e.printStackTrace();
+        }
+        System.exit(0);
+    }
+
+    private void usage() {
+        System.err.println("Usage: compile <xsl_file>");
+        System.exit(1);
+    }
+
+}
diff --git a/samples/CompiledJAXP/README.cjaxp b/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/README.cjaxp
similarity index 100%
rename from samples/CompiledJAXP/README.cjaxp
rename to samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/README.cjaxp
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/Transform.java b/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/Transform.java
new file mode 100644
index 00000000..fb3a7c60
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledJAXP/Transform.java
@@ -0,0 +1,74 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledJAXP;
+
+import java.io.OutputStreamWriter;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+public class Transform {
+
+    public static void main(String[] args){
+        Transform app = new Transform();
+        app.run(args);
+    }
+
+    /**
+     * Asks the TransformerFactory to try to load a precompiled version of
+     * the translet from the class path to construct a Transformer object.
+     * The translet performs the transformation on behalf of the
+     * Transformer.transform() method.
+     */
+    public void run(String[] args){
+        String xml = args[0];
+        String transletURI = args[1];
+
+        try {
+            // Set XSLTC's TransformerFactory implementation as the default
+            System.setProperty("javax.xml.transform.TransformerFactory",
+                         "org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
+
+            TransformerFactory tf = TransformerFactory.newInstance();
+            tf.setAttribute("use-classpath", Boolean.TRUE);
+	    Transformer transformer = tf.newTransformer(
+                                               new StreamSource(transletURI));
+
+	    StreamSource document = new StreamSource(xml);
+            StreamResult result = new StreamResult(
+                                           new OutputStreamWriter(System.out));
+            transformer.transform(document, result);
+        }
+	catch (Exception e) {
+            System.err.println("Exception: " + e); 
+	    e.printStackTrace();
+        }
+        System.exit(0);
+    }
+
+    public void usage() {
+        System.err.println("Usage: run <xml_file> <xsl_file>");
+        System.exit(1);
+    }
+
+}
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/CompileServlet.java b/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/CompileServlet.java
new file mode 100644
index 00000000..24c2f321
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/CompileServlet.java
@@ -0,0 +1,78 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledServlet;
+
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import java.net.URL;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.xalan.xsltc.compiler.XSLTC;
+
+/**
+ * @author Morten Jorgensen
+ * @author Jacek Ambroziak
+ */
+public class CompileServlet extends HttpServlet {
+
+    /**
+     * Main servlet entry point. The servlet reads a stylesheet from the
+     * URI specified by the "sheet" parameter. The compiled Java class
+     * ends up in the CWD of the web server (a better solution would be
+     * to have an environment variable point to a translet directory).
+     */
+    public void doGet(HttpServletRequest request,
+		      HttpServletResponse response)
+	throws IOException, ServletException {
+
+	response.setContentType("text/html");
+	PrintWriter out = response.getWriter();
+		
+	String stylesheetName = request.getParameter("sheet");
+	
+	out.println("<html><head>");
+	out.println("<title>Servlet Stylesheet Compilation</title>");
+	out.println("</head><body>");
+
+	if (stylesheetName == null) {
+	    out.println("<h1>Compilation error</h1>");
+	    out.println("The parameter <b><tt>sheet</tt></b> "+
+			"must be specified");
+	}
+	else {
+	    XSLTC xsltc = new XSLTC();
+
+	    xsltc.init();
+	    xsltc.compile(new URL(stylesheetName));
+	    out.println("<h1>Compilation successful</h1>");
+	    out.println("The stylesheet was compiled into the translet "+
+			"class "+xsltc.getClassName() + " and is now "+
+			"available for transformations on this server.");
+	}
+	out.println("</body></html>");
+    }
+}
diff --git a/samples/CompiledServlet/README.servlet b/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/README.servlet
similarity index 100%
rename from samples/CompiledServlet/README.servlet
rename to samples/src/main/java/org/apache/xalan/samples/CompiledServlet/README.servlet
diff --git a/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/TransformationServlet.java b/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/TransformationServlet.java
new file mode 100644
index 00000000..b95cf2d2
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/CompiledServlet/TransformationServlet.java
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.CompiledServlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.xml.sax.SAXException;
+
+/**
+ * This servlet demonstrates how XSL transformations can be made available as
+ * a web service. See the CompileServlet for an example on how stylesheets
+ * can be pre-compiled before this servlet is invoked.
+ *
+ * Note that the XSLTC transformation engine is invoked through the JAXP
+ * interface, using the XSLTC "use-classpath" attribute.  The
+ * "use-classpath" attribute specifies to the XSLTC TransformerFactory
+ * that a precompiled version of the stylesheet (translet) may be available,
+ * and that that should be used in preference to recompiling the stylesheet.
+ * @author Morten Jorgensen
+ * @author Jacek Ambroziak
+ */
+public final class TransformationServlet extends HttpServlet {
+
+    /**
+     * Main servlet entry point
+     */
+    public void doGet(HttpServletRequest request,
+		      HttpServletResponse response)
+	throws IOException, ServletException {
+
+	// Initialise the output writer
+	response.setContentType("text/html");
+	PrintWriter out = response.getWriter();
+
+	// Get the two paramters "class" and "source".
+ String transletName = request.getParameter("class");
+	String documentURI  = request.getParameter("source");
+
+	try {
+	    if ((transletName == null) || (documentURI == null)) {
+	        out.println("<h1>XSL transformation error</h1>");
+		out.println("The parameters <b><tt>class</tt></b> and " +
+			    "<b><tt>source</tt></b> must be specified");
+	    }
+	    else {
+                TransformerFactory tf = TransformerFactory.newInstance();
+                try {
+                    tf.setAttribute("use-classpath", Boolean.TRUE);
+                } catch (IllegalArgumentException iae) {
+                    System.err.println(
+                           "Could not set XSLTC-specific TransformerFactory "
+                         + "attributes.  Transformation failed.");
+                }
+                Transformer t =
+                         tf.newTransformer(new StreamSource(transletName));
+
+		// Start the transformation
+		final long start = System.currentTimeMillis();
+		t.transform(new StreamSource(documentURI),
+                            new StreamResult(out));
+		final long done = System.currentTimeMillis() - start;
+		out.println("<!-- transformed by XSLTC in "+done+"msecs -->");
+	    }
+	}
+	catch (Exception e) {
+	    out.println("<h1>Error</h1>");
+	    out.println(e.toString());
+	}
+    }
+}
diff --git a/samples/src/main/java/org/apache/xalan/samples/DOM2DOM/DOM2DOM.java b/samples/src/main/java/org/apache/xalan/samples/DOM2DOM/DOM2DOM.java
new file mode 100644
index 00000000..afb0e0fd
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/DOM2DOM/DOM2DOM.java
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.DOM2DOM;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+
+import org.apache.xml.serializer.Serializer;
+import org.apache.xml.serializer.SerializerFactory;
+import org.apache.xml.serializer.OutputPropertiesFactory;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException; 
+
+  /**
+   * Show how to transform a DOM tree into another DOM tree.  
+   * This uses the javax.xml.parsers to parse both an XSL file 
+   * and the XML file into a DOM, and create an output DOM.
+   */
+public class DOM2DOM
+{
+	public static void main(String[] args)
+    throws TransformerException, TransformerConfigurationException, FileNotFoundException,
+           ParserConfigurationException, SAXException, IOException
+  {    
+	  TransformerFactory tFactory = TransformerFactory.newInstance();
+
+    if(tFactory.getFeature(DOMSource.FEATURE) && tFactory.getFeature(DOMResult.FEATURE))
+    {
+      //Instantiate a DocumentBuilderFactory.
+      DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
+
+      // And setNamespaceAware, which is required when parsing xsl files
+      dFactory.setNamespaceAware(true);
+      
+      //Use the DocumentBuilderFactory to create a DocumentBuilder.
+      DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
+      
+      //Use the DocumentBuilder to parse the XSL stylesheet.
+      Document xslDoc = dBuilder.parse("birds.xsl");
+
+      // Use the DOM Document to define a DOMSource object.
+      DOMSource xslDomSource = new DOMSource(xslDoc);
+
+      // Set the systemId: note this is actually a URL, not a local filename
+      xslDomSource.setSystemId("birds.xsl");
+
+      // Process the stylesheet DOMSource and generate a Transformer.
+      Transformer transformer = tFactory.newTransformer(xslDomSource);
+
+      //Use the DocumentBuilder to parse the XML input.
+      Document xmlDoc = dBuilder.parse("birds.xml");
+      
+      // Use the DOM Document to define a DOMSource object.
+      DOMSource xmlDomSource = new DOMSource(xmlDoc);
+      
+      // Set the base URI for the DOMSource so any relative URIs it contains can
+      // be resolved.
+      xmlDomSource.setSystemId("birds.xml");
+      
+      // Create an empty DOMResult for the Result.
+      DOMResult domResult = new DOMResult();
+  
+  	  // Perform the transformation, placing the output in the DOMResult.
+      transformer.transform(xmlDomSource, domResult);
+	  
+	    //Instantiate an Xalan XML serializer and use it to serialize the output DOM to System.out
+	    // using the default output format, except for indent="yes"
+      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
+      xmlProps.setProperty("indent", "yes");
+      xmlProps.setProperty("standalone", "no");
+      Serializer serializer = SerializerFactory.getSerializer(xmlProps);                             
+      serializer.setOutputStream(System.out);
+      serializer.asDOMSerializer().serialize(domResult.getNode());
+	}
+    else
+    {
+      throw new org.xml.sax.SAXNotSupportedException("DOM node processing not supported!");
+    }
+  }
+}
diff --git a/samples/DOM2DOM/birds.xml b/samples/src/main/java/org/apache/xalan/samples/DOM2DOM/birds.xml
similarity index 100%
rename from samples/DOM2DOM/birds.xml
rename to samples/src/main/java/org/apache/xalan/samples/DOM2DOM/birds.xml
diff --git a/samples/DOM2DOM/birds.xsl b/samples/src/main/java/org/apache/xalan/samples/DOM2DOM/birds.xsl
similarity index 100%
rename from samples/DOM2DOM/birds.xsl
rename to samples/src/main/java/org/apache/xalan/samples/DOM2DOM/birds.xsl
diff --git a/samples/DOM2DOM/readme.html b/samples/src/main/java/org/apache/xalan/samples/DOM2DOM/readme.html
similarity index 100%
rename from samples/DOM2DOM/readme.html
rename to samples/src/main/java/org/apache/xalan/samples/DOM2DOM/readme.html
diff --git a/samples/src/main/java/org/apache/xalan/samples/Pipe/Pipe.java b/samples/src/main/java/org/apache/xalan/samples/Pipe/Pipe.java
new file mode 100644
index 00000000..c783581d
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/Pipe/Pipe.java
@@ -0,0 +1,86 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.Pipe;
+
+import java.io.IOException;
+
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.xml.serializer.Serializer;
+import org.apache.xml.serializer.SerializerFactory;
+import org.apache.xml.serializer.OutputPropertiesFactory;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+  /**
+   * This example shows how to chain a series of transformations by
+   * piping SAX events from one Transformer to another. Each Transformer
+   * operates as a SAX2 XMLFilter/XMLReader.
+   */
+public class Pipe
+{
+	public static void main(String[] args)
+	throws TransformerException, TransformerConfigurationException, 
+         SAXException, IOException	   
+	{
+    // Instantiate  a TransformerFactory.
+  	TransformerFactory tFactory = TransformerFactory.newInstance();
+    // Determine whether the TransformerFactory supports The use uf SAXSource 
+    // and SAXResult
+    if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE))
+    { 
+      // Cast the TransformerFactory to SAXTransformerFactory.
+      SAXTransformerFactory saxTFactory = ((SAXTransformerFactory) tFactory);	  
+      // Create a TransformerHandler for each stylesheet.
+      TransformerHandler tHandler1 = saxTFactory.newTransformerHandler(new StreamSource("foo1.xsl"));
+      TransformerHandler tHandler2 = saxTFactory.newTransformerHandler(new StreamSource("foo2.xsl"));
+      TransformerHandler tHandler3 = saxTFactory.newTransformerHandler(new StreamSource("foo3.xsl"));
+    
+      // Create an XMLReader.
+	    XMLReader reader = XMLReaderFactory.createXMLReader();
+      reader.setContentHandler(tHandler1);
+      reader.setProperty("http://xml.org/sax/properties/lexical-handler", tHandler1);
+
+      tHandler1.setResult(new SAXResult(tHandler2));
+      tHandler2.setResult(new SAXResult(tHandler3));
+
+      // transformer3 outputs SAX events to the serializer.
+      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
+      xmlProps.setProperty("indent", "yes");
+      xmlProps.setProperty("standalone", "no");
+      Serializer serializer = SerializerFactory.getSerializer(xmlProps);
+      serializer.setOutputStream(System.out);
+      tHandler3.setResult(new SAXResult(serializer.asContentHandler()));
+
+	    // Parse the XML input document. The input ContentHandler and output ContentHandler
+      // work in separate threads to optimize performance.   
+      reader.parse("foo.xml");
+    }
+  }
+}
diff --git a/samples/Pipe/foo.xml b/samples/src/main/java/org/apache/xalan/samples/Pipe/foo.xml
similarity index 100%
rename from samples/Pipe/foo.xml
rename to samples/src/main/java/org/apache/xalan/samples/Pipe/foo.xml
diff --git a/samples/Pipe/foo1.xsl b/samples/src/main/java/org/apache/xalan/samples/Pipe/foo1.xsl
similarity index 100%
rename from samples/Pipe/foo1.xsl
rename to samples/src/main/java/org/apache/xalan/samples/Pipe/foo1.xsl
diff --git a/samples/Pipe/foo2.xsl b/samples/src/main/java/org/apache/xalan/samples/Pipe/foo2.xsl
similarity index 100%
rename from samples/Pipe/foo2.xsl
rename to samples/src/main/java/org/apache/xalan/samples/Pipe/foo2.xsl
diff --git a/samples/Pipe/foo3.xsl b/samples/src/main/java/org/apache/xalan/samples/Pipe/foo3.xsl
similarity index 100%
rename from samples/Pipe/foo3.xsl
rename to samples/src/main/java/org/apache/xalan/samples/Pipe/foo3.xsl
diff --git a/samples/Pipe/readme.html b/samples/src/main/java/org/apache/xalan/samples/Pipe/readme.html
similarity index 100%
rename from samples/Pipe/readme.html
rename to samples/src/main/java/org/apache/xalan/samples/Pipe/readme.html
diff --git a/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/SAX2SAX.java b/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/SAX2SAX.java
new file mode 100644
index 00000000..0f878dd9
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/SAX2SAX.java
@@ -0,0 +1,109 @@
+
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+
+/**
+ *  Replicate the SimpleTransform sample, explicitly using the SAX model to handle the
+ *  stylesheet, the XML input, and the transformation.
+ */
+package org.apache.xalan.samples.SAX2SAX;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Templates;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TemplatesHandler;
+import javax.xml.transform.sax.TransformerHandler;
+
+import org.apache.xml.serializer.Serializer;
+import org.apache.xml.serializer.SerializerFactory;
+import org.apache.xml.serializer.OutputPropertiesFactory;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+
+public class SAX2SAX
+{
+  public static void main(String[] args)
+	throws TransformerException, TransformerConfigurationException, 
+         SAXException, IOException	   
+	{
+
+    // Instantiate a TransformerFactory.
+  	TransformerFactory tFactory = TransformerFactory.newInstance();
+    // Determine whether the TransformerFactory supports The use of SAXSource 
+    // and SAXResult
+    if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE))
+    { 
+      // Cast the TransformerFactory.
+      SAXTransformerFactory saxTFactory = ((SAXTransformerFactory) tFactory);
+      // Create a ContentHandler to handle parsing of the stylesheet.
+      TemplatesHandler templatesHandler = saxTFactory.newTemplatesHandler();
+
+      // Create an XMLReader and set its ContentHandler.
+      XMLReader reader = XMLReaderFactory.createXMLReader();
+      reader.setContentHandler(templatesHandler);
+    
+      // Parse the stylesheet.                       
+      reader.parse("birds.xsl");
+
+      //Get the Templates object from the ContentHandler.
+      Templates templates = templatesHandler.getTemplates();
+      // Create a ContentHandler to handle parsing of the XML source.  
+      TransformerHandler handler 
+        = saxTFactory.newTransformerHandler(templates);
+      // Reset the XMLReader's ContentHandler.
+      reader.setContentHandler(handler);  
+
+      // Set the ContentHandler to also function as a LexicalHandler, which
+      // includes "lexical" events (e.g., comments and CDATA). 
+      reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
+      
+   	  FileOutputStream fos = new FileOutputStream("birds.out");
+      
+      java.util.Properties xmlProps = OutputPropertiesFactory.getDefaultMethodProperties("xml");
+      xmlProps.setProperty("indent", "yes");
+      xmlProps.setProperty("standalone", "no");      
+      Serializer serializer = SerializerFactory.getSerializer(xmlProps);
+      serializer.setOutputStream(fos);
+   
+      
+      // Set the result handling to be a serialization to the file output stream.
+      Result result = new SAXResult(serializer.asContentHandler());
+      handler.setResult(result);
+      
+      // Parse the XML input document.
+      reader.parse("birds.xml");
+      
+    	System.out.println("************* The result is in birds.out *************");	
+    }	
+    else
+      System.out.println("The TransformerFactory does not support SAX input and SAX output");
+  }
+}
diff --git a/samples/SAX2SAX/birds.xml b/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/birds.xml
similarity index 100%
rename from samples/SAX2SAX/birds.xml
rename to samples/src/main/java/org/apache/xalan/samples/SAX2SAX/birds.xml
diff --git a/samples/SAX2SAX/birds.xsl b/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/birds.xsl
similarity index 100%
rename from samples/SAX2SAX/birds.xsl
rename to samples/src/main/java/org/apache/xalan/samples/SAX2SAX/birds.xsl
diff --git a/samples/SAX2SAX/foo.xml b/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/foo.xml
similarity index 100%
rename from samples/SAX2SAX/foo.xml
rename to samples/src/main/java/org/apache/xalan/samples/SAX2SAX/foo.xml
diff --git a/samples/SAX2SAX/foo.xsl b/samples/src/main/java/org/apache/xalan/samples/SAX2SAX/foo.xsl
similarity index 100%
rename from samples/SAX2SAX/foo.xsl
rename to samples/src/main/java/org/apache/xalan/samples/SAX2SAX/foo.xsl
diff --git a/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/SimpleTransform.java b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/SimpleTransform.java
new file mode 100644
index 00000000..33679f50
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/SimpleTransform.java
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.SimpleTransform;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+/**
+ *  Use the TraX interface to perform a transformation in the simplest manner possible
+ *  (3 statements).
+ */
+public class SimpleTransform
+{
+	public static void main(String[] args)
+    throws TransformerException, TransformerConfigurationException, 
+           FileNotFoundException, IOException
+  {  
+  // Use the static TransformerFactory.newInstance() method to instantiate 
+  // a TransformerFactory. The javax.xml.transform.TransformerFactory 
+  // system property setting determines the actual class to instantiate --
+  // org.apache.xalan.transformer.TransformerImpl.
+	TransformerFactory tFactory = TransformerFactory.newInstance();
+	
+	// Use the TransformerFactory to instantiate a Transformer that will work with  
+	// the stylesheet you specify. This method call also processes the stylesheet
+  // into a compiled Templates object.
+	Transformer transformer = tFactory.newTransformer(new StreamSource("birds.xsl"));
+
+	// Use the Transformer to apply the associated Templates object to an XML document
+	// (foo.xml) and write the output to a file (foo.out).
+	transformer.transform(new StreamSource("birds.xml"), new StreamResult(new FileOutputStream("birds.out")));
+	
+	System.out.println("************* The result is in birds.out *************");
+  }
+}
diff --git a/samples/SimpleTransform/birds.xml b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/birds.xml
similarity index 100%
rename from samples/SimpleTransform/birds.xml
rename to samples/src/main/java/org/apache/xalan/samples/SimpleTransform/birds.xml
diff --git a/samples/SimpleTransform/birds.xsl b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/birds.xsl
similarity index 100%
rename from samples/SimpleTransform/birds.xsl
rename to samples/src/main/java/org/apache/xalan/samples/SimpleTransform/birds.xsl
diff --git a/samples/SimpleTransform/foo.xml b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/foo.xml
similarity index 100%
rename from samples/SimpleTransform/foo.xml
rename to samples/src/main/java/org/apache/xalan/samples/SimpleTransform/foo.xml
diff --git a/samples/SimpleTransform/foo.xsl b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/foo.xsl
similarity index 100%
rename from samples/SimpleTransform/foo.xsl
rename to samples/src/main/java/org/apache/xalan/samples/SimpleTransform/foo.xsl
diff --git a/samples/SimpleTransform/readme.html b/samples/src/main/java/org/apache/xalan/samples/SimpleTransform/readme.html
similarity index 100%
rename from samples/SimpleTransform/readme.html
rename to samples/src/main/java/org/apache/xalan/samples/SimpleTransform/readme.html
diff --git a/samples/src/main/java/org/apache/xalan/samples/Trace/Trace.java b/samples/src/main/java/org/apache/xalan/samples/Trace/Trace.java
new file mode 100644
index 00000000..dd621c32
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/Trace/Trace.java
@@ -0,0 +1,93 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.Trace;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.xalan.trace.PrintTraceListener;
+import org.apache.xalan.trace.TraceManager;
+import org.apache.xalan.transformer.TransformerImpl;
+
+/**
+ * Sample for demonstrating Xalan "trace" interface.
+ * Usage: run in Trace directory: java Trace
+ * For an extensions trace sample, run in extensions
+ * directory: java Trace 3-java-namespace
+ */
+public class Trace
+{	
+  public static void main (String[] args)
+	  throws java.io.IOException, 
+			 TransformerException, TransformerConfigurationException,
+			 java.util.TooManyListenersException, 
+			 org.xml.sax.SAXException			 
+  {
+    String fileName = "foo";
+    if (args.length > 0)
+      fileName = args[0];
+
+    // Set up a PrintTraceListener object to print to a file.
+    java.io.FileWriter fw = new java.io.FileWriter("events.log");  
+    java.io.PrintWriter pw = new java.io.PrintWriter(fw, true);
+    PrintTraceListener ptl = new PrintTraceListener(pw);
+
+    // Print information as each node is 'executed' in the stylesheet.
+    ptl.m_traceElements = true;
+    // Print information after each result-tree generation event.
+    ptl.m_traceGeneration = true;
+    // Print information after each selection event.
+    ptl.m_traceSelection = true;
+    // Print information whenever a template is invoked.
+    ptl.m_traceTemplates = true;
+    // Print information whenever an extension call is made.
+    ptl.m_traceExtension = true;
+
+    // Set up the transformation    
+   	TransformerFactory tFactory = TransformerFactory.newInstance();
+    Transformer transformer = tFactory.newTransformer(new StreamSource(fileName + ".xsl"));
+
+    // Cast the Transformer object to TransformerImpl.
+    if (transformer instanceof TransformerImpl) 
+	  {
+      TransformerImpl transformerImpl = (TransformerImpl)transformer;
+      // Register the TraceListener with a TraceManager associated 
+      // with the TransformerImpl.
+      TraceManager trMgr = transformerImpl.getTraceManager();
+      trMgr.addTraceListener(ptl);
+                     
+      // Perform the transformation --printing information to
+      // the events log during the process.
+      transformer.transform
+                         ( new StreamSource(fileName + ".xml"), 
+                           new StreamResult(new java.io.FileWriter(fileName + ".out")) );
+    }
+    // Close the PrintWriter and FileWriter.
+    pw.close();
+    fw.close();
+   	System.out.println("**The output is in " + fileName + ".out; the log is in events.log ****");	
+    
+  }
+}
diff --git a/samples/Trace/foo.xml b/samples/src/main/java/org/apache/xalan/samples/Trace/foo.xml
similarity index 100%
rename from samples/Trace/foo.xml
rename to samples/src/main/java/org/apache/xalan/samples/Trace/foo.xml
diff --git a/samples/Trace/foo.xsl b/samples/src/main/java/org/apache/xalan/samples/Trace/foo.xsl
similarity index 100%
rename from samples/Trace/foo.xsl
rename to samples/src/main/java/org/apache/xalan/samples/Trace/foo.xsl
diff --git a/samples/src/main/java/org/apache/xalan/samples/TransformThread/TransformThread.java b/samples/src/main/java/org/apache/xalan/samples/TransformThread/TransformThread.java
new file mode 100644
index 00000000..e65e0ebf
--- /dev/null
+++ b/samples/src/main/java/org/apache/xalan/samples/TransformThread/TransformThread.java
@@ -0,0 +1,324 @@
+/*
+ * 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.
+ */
+/*
+ * $Id$
+ */
+package org.apache.xalan.samples.TransformThread;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Properties;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * What it does: this sample creates multiple threads 
+ * and runs them. Each thread will be assigned a particular
+ * stylesheet. Each thread will run multiple transformations on
+ * various xml files using its own transformer.
+ * 
+ * Note: the flavors used by the transformations can be
+ * configured below by changing SOURCE_FLAVOR and
+ * RESULT_FLAVOR. XSLTC can also be used by changing
+ * USE_XSLTC.
+ * 
+ * Description of files included with the sample:
+ * 
+ * foo0.xsl and foo1.xsl: foo0.xsl is the stylesheet used 
+ * for transformations by thread #0, foo1.xsl is the stylesheet
+ * used by thread #1.
+ * 
+ * foo0.xml and foo1.xml: foo0.xml and foo1.xml are the XML
+ * files used for the first and second transformations done
+ * by each thread.
+ * 
+ * Output will go to *.out files in the TransformThread directory.
+ * 
+ * @author <a href="mailto:richcao@ca.ibm.com">Richard Cao</a>
+ */
+public class TransformThread implements Runnable
+{    
+  // Flavors
+  public final static int STREAM = 0;
+  public final static int SAX = 1;
+  public final static int DOM = 2;
+  public final static String[] flavorNames =
+    new String[] { "Stream", "SAX", "DOM" };
+
+  // Configurable options
+  private static int SOURCE_FLAVOR = STREAM;
+    // private static int SOURCE_FLAVOR = SAX;
+    // private static int SOURCE_FLAVOR = DOM;
+    
+  private static int RESULT_FLAVOR = STREAM;
+    // private static int RESULT_FLAVOR = SAX;
+    // private static int RESULT_FLAVOR = DOM;
+  
+  private static boolean USE_XSLTC = false;
+    // private static boolean useXSLTC = true;
+
+
+  // Threads
+  private final static int NUM_THREADS = 2;
+  private static TransformThread INSTANCES[] = null;
+  protected Thread m_thread = null;
+  
+  // Number of transformations per thread
+  private final static int NUM_TRANSFORMATIONS = 2;
+
+  // Files names and extensions
+  private final static String XML_IN_BASE = "foo";
+  private final static String XML_EXT = ".xml";
+  private final static String XSL_IN_BASE = "foo";
+  private final static String XSL_EXT = ".xsl";
+  private final static String FILE_OUT_BASE = "foo_";
+  private final static String FILE_OUT_EXT = ".out";
+
+  // Thread identifier
+  private int m_thrdNum = -1;
+
+  private InputStream[] m_inStream = null;
+
+  private Source[] m_inSource = null;
+  private Result[] m_outResult = null;
+
+  // One Transformer per thread since Transformers
+  // are _NOT_ thread-safe
+  private Transformer m_transformer = null;
+
... 159755 lines suppressed ...


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


[xalan-java] 05/06: Update build and test instructions to reflect Mavenized xalan-java.

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 956816958eb5e40c7e8c55a7b0148107e1813a87
Author: kubycsolutions <ke...@kubyc.solutions>
AuthorDate: Sun Oct 15 17:32:26 2023 -0400

    Update build and test instructions to reflect Mavenized xalan-java.
---
 README | 213 ++++++++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 152 insertions(+), 61 deletions(-)

diff --git a/README b/README
index 0fd73e9d..59b949ae 100644
--- a/README
+++ b/README
@@ -14,110 +14,201 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
 -->
-
+Apache Xalan-Java Build, Test, and Release Notes
 Copyright 1999-2023 The Apache Software Foundation
 
 Authors:
    Gary Gregory <gg...@apache.org>
-   Joe Kesselman
+   Joe Kesselman <jk...@apache.org>
    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.
+This document's primarily focused on building artifacts for production
+releases of the Apache Xalan-J XSLT processor, but may be helpful for
+others working with Xalan's source.
+
+(0) Prerequisites
+
+Official Xalan builds are currently being performed using Maven
+version 6.3.6 and a Java 1.8 Development Kit. We recommend Eclipse
+Temurun for the latter; it is available from
+https://adoptium.net/temurin/releases/?version=8. Be sure to install
+the JDK, not just the JRE.
+
+The xalan tests, however, are still relying on Apache Ant. You can
+obtain this from https://ant.apache.org/bindownload.cgi. I have been
+testing with Ant 1.10.12, but have successfully built with 1.9.16 as
+well.
 
-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:
+1.1) Obtain the source for XalanJ and its test package.
+
+"Source Distribution" jarfiles are available which contain a snapshot
+of a particular release of the source code; extracting them with "jar
+-xf" will yield the xalan-java and xalan-test directories.
+
+Or (usually preferred) you can use "git clone" to obtain these from
+either github.com. or gitbox.apache.org. New development takes place
+on the branch currently called "master", which git will fetch by default:
+
+  git clone https://github.com/apache/xalan-java.git
+  git clone https://github.com/apache/xalan-test.git
+
+(In the past this code was hosted at gitbox.apache.org, but that now
+redirects to the github copy.)
+
+If you want to build a specific release rather than the development
+version, you can obtain that by adding the release's branch name to
+the git clone operation. For example, to get the code released as
+version 2.7.1, you would issue the command
+
+  git clone https://github.com/apache/xalan-java.git --single-branch --branch xalan-j_2_7_1
+
+There will also usually be a _maint branch, which is used for development and testing of "hot fixes" that will be made available as new point releases (for example, 2.7.1.1). You would access this as
+
+  git clone https://github.com/apache/xalan-java.git --single-branch --branch xalan-j_2_7_1_maint
 
-git clone --single-branch https://gitbox.apache.org/repos/asf/xalan-java.git -b xalan-j_2_7_1_maint
+Whether you perform the git clone operations or unpack the source
+distribution jarfiles, each produces its own folder: xalan-java and
+xalan-test. Since xalan-test looks for code to be tested via the path
+../xalan-java, these will need to be children of the same parent
+directory for the tests to run.
 
-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.
+1.2) Set JAVA_HOME and ANT_HOME environment variable. On Linux, assuming
+a standard installation of the JDK with the "alternatives" tooling,
+the easiest way to be sure you have the right JDK may be to use the
+command
 
-2) Set JAVA_HOME and ANT_HOME environment variables, for example on Windows:
+  export ANT_HOME=/usr/share/ant	
+  export JAVA_HOME=$(readlink -f /etc/alternatives/java_sdk_1.8.0)
 
-set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-8.0.352.8-hotspot\
+On Windows, you will probably need to set these more explicitly, and add them to your PATH:
 
-set ANT_HOME=C:\java\apache-ant-1.10.12
+  set ANT_HOME=C:\path\to\your\installed\apache-ant-
+  set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-8.0.352.8-hotspot\
+  set PATH=%JAVA_HOME%;%ANT_HOME%;%PATH%
 
-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).
+1.3) Go to the xalan-java source directory (i.e, from the source
+distribution folder, which contains folders "src", "tools" etc), and
+from there run the clean-and-distribution-build command:
 
-(2) Steps to run the XalanJ tests, on XalanJ implementation
+   On Linux, run ./mvnbuild.sh
+   On Windows, run ./mvnbuild.bat
 
-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.
+This will build:
+   ./target/site/apidocs: Javadoc for the Xalan code base
 
-1) Go to the XalanJ tests repos's, local git clone folder:
-cd ..\xalan-test
+   ./target/site/design: Architecture documentation for Xalan
+     (probably outdated)
 
-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.
+   ./target/site/xsltc: Architecture documentation for the Xalan bytecode
+     compilation operations (probably outdated)
 
-2) Set JAVA_HOME and ANT_HOME environment variables, for example:
+   ./build/*.jar: Executable jarfiles for the XML Serializer, the Xalan
+     XSLT Processor, some old xsltc samples and the @xsl.usage taglet
+     we used in producing the Javadoc/apidocs (see above).
 
-set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-8.0.352.8-hotspot\
+1.4) IMPORTANT: Until we get xalan-test updated, you will need to go to the
+xalan-java/build directory and manually copy or rename the jarfiles to
+remove the version number:
 
-set ANT_HOME=C:\java\apache-ant-1.10.12
+       Linux: 
+           mv xalan-*.jar xalan.jar
+	   mv serializer-*.jar serializer.jar
+       Windows: 
+           ren xalan-*.jar xalan.jar
+	   ren serializer-*.jar serializer.jar
 
-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,
+(2) Steps to run the XalanJ tests, assuming you have already build
+xalan-java as discussed above:
 
-The tests described below within points 4.1, 4.2, 4.3 need to be run from folder xalan-test. 
+2.1) Go to the xalan-tests local folder. If you have cloned xalan-java
+and xalan-test from Git, it will be a sibling of xalan-java.
 
-4.1 Run the ant target "smoketest", using following two commands in sequence shown below
+BUT: For XalanJ source distribution users, the xalan-test folder is
+shipped as a child of the xalan-java source folder (i.e, parallel to
+folders "src", "tools" etc within the main XalanJ codebase folder
+location). In theory you *should* be able to run the tests directly
+from here, but if you run into trouble try moving xalan-test up to be
+a sibling of xalan-java.
 
-build extensions.classes
+2.2) Ensure the JAVA_HOME, ANT_HOME, and (on Windows) PATH environment
+variables have been set as discussed above.
 
-build smoketest
+2.3) Go to the xalan-test folder, and from there run a clean source
+build. Unfortunately we don't currently have a single target for this,
+so you need to spell out some of the supporting packages:
 
-The final result of the command "build smoketest" should be following,
+  Linux: ./build.sh clean jar extensions.classes bugzilla.classes jira.classes
+  Windows: build clean jar extensions.classes bugzilla.classes jira.classes
+
+The jar target builds the main XalanJ test driver, testxsl.jar, which
+acts as main XalanJ test driver. The .classes targets build supporting
+code specific to testing XSLT Extensions or some old issues reported
+via Bugzilla or (more recently) Jira.
+
+
+2.4) From the xalan-test directory, you can run the necessary XalanJ
+tests as follows:
+
+2.4.1) The most important test set is smoketest. This exercises all
+the testcases known to work in Apache Xalan-J, while avoiding some
+which have open issues against them.
+
+Make sure you have built the jar and extensions.classes, as
+above. Then, from the xalan-test directory:
+
+  Linux: ./build.sh smoketest
+  Windows: build smoketest
+
+At the end of the test run, smoketest should report:
 
 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,
+2.4.2) Run the ant target "apitest", using following command
+
+  Linux: ./build.sh apitest
+  Windows: build apitest
+
+At the end of the test run, apitest should report:
 
 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
+2.4.3) Run the ant target "conf.xsltc", using the following command 
 
-The final result of the command "build conf.xsltc" should be following,
+  Linux: ./build.sh conf.xsltc
+  Windows: build conf.xsltc
 
-[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).
+At the end of the test run, conf.xsltc should report:
 
-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
+[echo]  [minitest] CONGRATULATIONS! The conf.xsltc tests passed!
 
-These XSLT transformation issues, do not exist with the XalanJ interpretive processor.
+PLEASE NOTE that XSLTC has some known issues, which will cause FAIL
+reports during this test. These are not considered regressions, and
+are specialcased so conf.xsltc reports "passed" despite them. There
+are Jira tickets open to address these bugs, and when fixes become
+available we will again insist that these tests pass.
+
+   output63         https://issues.apache.org/jira/browse/XALANJ-2642
+   idkey49          https://issues.apache.org/jira/browse/XALANJ-2640
+   math111          https://issues.apache.org/jira/browse/XALANJ-2641
+   whitespace35     https://issues.apache.org/jira/browse/XALANJ-2643
+
+2.4.4) Other test targets exist, which are either subsets of the above
+or are considered less essential for regression testing. You may want
+to read through the build.xml file to find them. NOTE that one target,
+"api", is currently missing, which causes the "all" target to fail; we
+need to clean that up at some point.
+
+2.5) When bugs are reported, tests should be added (at least to the
+jira test set) to demonstrate the problem. When bugs are fixed, those
+tests should be migrated either to the appropriate category or to the
+"contrib" bucket if they don't fit nicely anywhere else. If the bug report was in error, the test demonstrating the (correct but unexpected) behavior may be either discarded, or moved as above if we think it's a useful illustration.
\ No newline at end of file


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


[xalan-java] 03/06: Late change: Fix xhtml errors

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ff6e9e321dc346bf51133c1c8d4245c0c89276e2
Author: kubycsolutions <ke...@kubyc.solutions>
AuthorDate: Sat Oct 14 18:50:12 2023 -0400

    Late change: Fix xhtml errors
---
 .../xhtml/AppletXMLtoHTML/appletXMLtoHTML.xhtml    |  14 +-
 .../src/site/xhtml/CompiledEJB/bottom_frame.xhtml  |   3 +-
 samples/src/site/xhtml/CompiledEJB/index.xhtml     |   4 +-
 xalan/src/site/xhtml/design2_0_0.xhtml             | 452 ++++++++++-----------
 xalan/src/site/xhtml/javadocOverview.xhtml         |   4 +-
 5 files changed, 237 insertions(+), 240 deletions(-)

diff --git a/samples/src/site/xhtml/AppletXMLtoHTML/appletXMLtoHTML.xhtml b/samples/src/site/xhtml/AppletXMLtoHTML/appletXMLtoHTML.xhtml
index 396855ed..6944d724 100644
--- a/samples/src/site/xhtml/AppletXMLtoHTML/appletXMLtoHTML.xhtml
+++ b/samples/src/site/xhtml/AppletXMLtoHTML/appletXMLtoHTML.xhtml
@@ -21,14 +21,14 @@
 <head>
 	<title>Using an applet to perform XSL transformations</title>
 </head>
-  <FRAMESET ROWS="125,*" >
-    <FRAME NAME="processor" SRC="client.html" SCROLLING="auto" >
+  <frameset ROWS="125,*" >
+    <frame NAME="processor" SRC="client.html" SCROLLING="auto" >
       <frameset cols="33%, 33%, *">
-        <FRAME NAME="targetArea0" SRC="target.html" />
-        <FRAME NAME="targetArea1" SRC="target.html" />
-        <FRAME NAME="targetArea2" SRC="target.html" />        
+        <frame NAME="targetArea0" SRC="target.html" />
+        <frame NAME="targetArea1" SRC="target.html" />
+        <frame NAME="targetArea2" SRC="target.html" />        
       </frameset>
-      </FRAME>
-  </FRAMESET>
+      </frame>
+  </frameset>
 
 </html>
diff --git a/samples/src/site/xhtml/CompiledEJB/bottom_frame.xhtml b/samples/src/site/xhtml/CompiledEJB/bottom_frame.xhtml
index aed0ae08..3fdbdf42 100644
--- a/samples/src/site/xhtml/CompiledEJB/bottom_frame.xhtml
+++ b/samples/src/site/xhtml/CompiledEJB/bottom_frame.xhtml
@@ -17,8 +17,7 @@
 -->
 <html>
   <head></head>
-  <body>
-    <backgroundcolor>#ffffff</backgroundcolor>
+  <body style="backgroundcolor:#ffffff;">
   </body>
 </html>
 
diff --git a/samples/src/site/xhtml/CompiledEJB/index.xhtml b/samples/src/site/xhtml/CompiledEJB/index.xhtml
index e04741a3..a8f2d8a7 100644
--- a/samples/src/site/xhtml/CompiledEJB/index.xhtml
+++ b/samples/src/site/xhtml/CompiledEJB/index.xhtml
@@ -17,9 +17,7 @@
 -->
 <html>
   <head><title>XML Technology Center</title></head>
-    <backgroundcolor>#ffffff</backgroundcolor>
-
-    <frameset border="0" rows="30%,70%">
+    <frameset border="0" rows="30%,70%" style="backgroundcolor:#ffffff;">
       <frame src="top_frame.html" NAME="top" scrolling="off"/>
       <frame src="bottom_frame.html" NAME="bottom" scrolling="on"/>
     </frameset>
diff --git a/xalan/src/site/xhtml/design2_0_0.xhtml b/xalan/src/site/xhtml/design2_0_0.xhtml
index 008bf214..6869f0f8 100644
--- a/xalan/src/site/xhtml/design2_0_0.xhtml
+++ b/xalan/src/site/xhtml/design2_0_0.xhtml
@@ -1,277 +1,277 @@
-<HTML><HEAD><TITLE>Xalan-J 2.0 Design</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><H1><A href="http://xml.apache.org"><IMG alt="" src="images/xmllogo.gif"/></A>&nbsp;&nbsp;
-         Xalan-J 2.0 Design</H1><HR/>
-  <P></P>
-  <P>Author: Scott Boag<BR/>State: In Progress</P>
-  <UL> 
-	   <LI><A href="#intro">Introduction</A></LI>
- 	   <LI><A href="#requirements">Xalan Requirements</A></LI>
-	   <LI><A href="#overarch">Overview of Architecture</A></LI>
-	   <LI><A href="#process">Process Module</A></LI>
-	   <LI><A href="#templates">Templates Module</A></LI>
-	   <LI><A href="#transformer">Transformer Module</A></LI>
-       <UL>
-         <LI><A href="#stree">Stree Module</A></LI>
-         <LI><A href="#extensions">Extensions Module</A></LI>
-     </UL>
-	   <LI><A href="#xpath">XPath Module</A></LI>
-       <UL><LI><A href="#xpathdbconn">XPath Database Connection</A></LI></UL>
-	   <LI><A href="#utils">Utils Package</A></LI>         
-	   <LI><A href="#other">Other Packages</A></LI>         
-	   <LI><A href="#compilation">Xalan Stylesheet Complilation to Java</A></LI><LI><A href="#optimizations">Future Optimizations</A></LI><LI><A href="#coding">Coding Conventions</A></LI>
+<html><head><title>Xalan-J 2.0 Design</title></head><body alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><h1><a href="http://xml.apache.org"><img alt="" src="images/xmllogo.gif"/></a>&nbsp;&nbsp;
+         Xalan-J 2.0 Design</h1><hr/>
+  <p></p>
+  <p>Author: Scott Boag<br/>State: In Progress</p>
+  <ul> 
+	   <li><a href="#intro">Introduction</a></li>
+ 	   <li><a href="#requirements">Xalan Requirements</a></li>
+	   <li><a href="#overarch">Overview of Architecture</a></li>
+	   <li><a href="#process">Process Module</a></li>
+	   <li><a href="#templates">Templates Module</a></li>
+	   <li><a href="#transformer">Transformer Module</a></li>
+       <ul>
+         <li><a href="#stree">Stree Module</a></li>
+         <li><a href="#extensions">Extensions Module</a></li>
+     </ul>
+	   <li><a href="#xpath">XPath Module</a></li>
+       <ul><li><a href="#xpathdbconn">XPath Database Connection</a></li></ul>
+	   <li><a href="#utils">Utils Package</a></li>         
+	   <li><a href="#other">Other Packages</a></li>         
+	   <li><a href="#compilation">Xalan Stylesheet Complilation to Java</a></li><li><a href="#optimizations">Future Optimizations</a></li><li><a href="#coding">Coding Conventions</a></li>
 	        
-   <LI><A href="../apidocs/index.html">Xalan-J 2.0 Javadoc</A></LI>
-  </UL><A name="intro"><!--anchor--></A>
-  <H2>Introduction</H2> 
-	 <P>This document presents the basic design for Xalan-J 2.0, which is a
-		<A href="http://www.awl.com/cseng/titles/0-201-89542-0/techniques/refactoring.htm">refactoring</A>
-		and redesign of the Xalan-J 1.x processor.   This document will expand and grow over time, and is also incomplete in some sections, though hopefully overall accurate.  The reader should be able to get a good overall idea of the internal design of Xalan, and begin to understand the process flow, and also the technical challenges.</P> 
-	 <P>The main goals of this redesign are
-		to: </P><OL> 
-		<LI>Make the design and code more understandable by Open Source
-		  people.</LI> 
-		<LI>Reduce code size and complexity.</LI>
-		<LI>By simplifying the code, make optimization easier.</LI> 
-		<LI>Make modules generally more localized, and less tangled with other
-		  modules.</LI> 
-		<LI>Conform to the <A href="http://java.sun.com/aboutJava/communityprocess/jsr/jsr_063_jaxp11.html">javax.xml.transform  (TrAX [Transformations for XML])</A> interfaces.</LI> 
-	 <LI>Increase the ability to incrementally produce the result tree.</LI></OL> 
-	 <P>The techniques used toward these goals are to:</P> 
-	 <OL> 
-		<LI>In general, flatten the hierarchy of packages, in order to make the
-		  structure more apparent from the top-level view.</LI> 
-		<LI>Break the construction and the validation of the XSLT stylesheet from
-		  the stylesheet objects themselves.</LI>
-		<LI>Drive the construction of the stylesheet through a table, so that it
-		  is less prone to error.</LI> 
-		<LI>Break the transformation process into a separate package, away from
-		  the stylesheet objects.</LI> 
-		<LI>Create this design document, as a starting point for people interested in
-		  approaching the code.</LI> 
-	 </OL> 
-	 <P>The goals are not:</P> 
-	 <OL> 
-		<LI>To add more features in the progress of this refactoring. This is
-		  design and code clean-up in order to meet the above-named goals. We expect that it will be <B>much</B> easier to add
-		  features once this work is completed.</LI> 
-		<LI>To optimize code for the sake of optimization. However, we
-		  expect that the code will be faster once this work is complete.</LI> 
-	 </OL> 
-	 <P>How well we've achieved the goals will be measured by feedback from the
-		<A href="http://marc.info/?l=xalan-dev">Xalan-dev</A> list, and by software metrics tools.</P> 
-	 <P>Please note that the diagrams in this design document are meant to be
-		useful abstractions, and may not always be exact.</P> 
-  <A name="requirements"><!--anchor--></A> 
-  <H2>Xalan Requirements</H2>
-  <P>These are the concrete general requirements of Xalan, as I understand them, and covering both the Java and C++ versions.  These requirements have been built up over time by experience with product groups and general users.</P><OL><LI>Java, C++ Versions.</LI><LI>XSLT 1.0 conformance, and beyond. (i.e. conform to the current W3C recommendation).</LI><LI>Have design and Code understandable by Open Source Community.</LI><LI>Ability to interoperate with standard APIs.  (SAX2, DOM2, JAXP) [...]
-  <H2>Overview of Architecture</H2> 
-	 <P>The following diagram shows the XSLT abstract processing model.  A transformation expressed in XSLT describes rules for transforming a <A href="http://www.w3.org/TR/xpath#data-model">Source Tree </A> into a result tree. The transformation is achieved by associating patterns with templates. A pattern is matched against elements in the source tree. A template is instantiated to create part of the result tree. The result tree is separate from the source tree. The structure of the resul [...]
+   <li><a href="../apidocs/index.html">Xalan-J 2.0 Javadoc</a></li>
+  </ul><a name="intro"><!--anchor--></a>
+  <h2>Introduction</h2> 
+	 <p>This document presents the basic design for Xalan-J 2.0, which is a
+		<a href="http://www.awl.com/cseng/titles/0-201-89542-0/techniques/refactoring.htm">refactoring</a>
+		and redesign of the Xalan-J 1.x processor.   This document will expand and grow over time, and is also incomplete in some sections, though hopefully overall accurate.  The reader should be able to get a good overall idea of the internal design of Xalan, and begin to understand the process flow, and also the technical challenges.</p> 
+	 <p>The main goals of this redesign are
+		to: </p><ol> 
+		<li>Make the design and code more understandable by Open Source
+		  people.</li> 
+		<li>Reduce code size and complexity.</li>
+		<li>By simplifying the code, make optimization easier.</li> 
+		<li>Make modules generally more localized, and less tangled with other
+		  modules.</li> 
+		<li>Conform to the <a href="http://java.sun.com/aboutJava/communityprocess/jsr/jsr_063_jaxp11.html">javax.xml.transform  (TrAX [Transformations for XML])</a> interfaces.</li> 
+	 <li>Increase the ability to incrementally produce the result tree.</li></ol> 
+	 <p>The techniques used toward these goals are to:</p> 
+	 <ol> 
+		<li>In general, flatten the hierarchy of packages, in order to make the
+		  structure more apparent from the top-level view.</li> 
+		<li>Break the construction and the validation of the XSLT stylesheet from
+		  the stylesheet objects themselves.</li>
+		<li>Drive the construction of the stylesheet through a table, so that it
+		  is less prone to error.</li> 
+		<li>Break the transformation process into a separate package, away from
+		  the stylesheet objects.</li> 
+		<li>Create this design document, as a starting point for people interested in
+		  approaching the code.</li> 
+	 </ol> 
+	 <p>The goals are not:</p> 
+	 <ol> 
+		<li>To add more features in the progress of this refactoring. This is
+		  design and code clean-up in order to meet the above-named goals. We expect that it will be <b>much</b> easier to add
+		  features once this work is completed.</li> 
+		<li>To optimize code for the sake of optimization. However, we
+		  expect that the code will be faster once this work is complete.</li> 
+	 </ol> 
+	 <p>How well we've achieved the goals will be measured by feedback from the
+		<a href="http://marc.info/?l=xalan-dev">Xalan-dev</a> list, and by software metrics tools.</p> 
+	 <p>Please note that the diagrams in this design document are meant to be
+		useful abstractions, and may not always be exact.</p> 
+  <a name="requirements"><!--anchor--></a> 
+  <h2>Xalan Requirements</h2>
+  <p>These are the concrete general requirements of Xalan, as I understand them, and covering both the Java and C++ versions.  These requirements have been built up over time by experience with product groups and general users.</p><ol><li>Java, C++ Versions.</li><li>XSLT 1.0 conformance, and beyond. (i.e. conform to the current W3C recommendation).</li><li>Have design and Code understandable by Open Source Community.</li><li>Ability to interoperate with standard APIs.  (SAX2, DOM2, JAXP) [...]
+  <h2>Overview of Architecture</h2> 
+	 <p>The following diagram shows the XSLT abstract processing model.  A transformation expressed in XSLT describes rules for transforming a <a href="http://www.w3.org/TR/xpath#data-model">Source Tree </a> into a result tree. The transformation is achieved by associating patterns with templates. A pattern is matched against elements in the source tree. A template is instantiated to create part of the result tree. The result tree is separate from the source tree. The structure of the resul [...]
 
-</P><P>The term &quot;tree&quot;, as used within this document, describes an
+</p><p>The term &quot;tree&quot;, as used within this document, describes an
 			 abstract structure that consists of nodes or events that may be produced by
 			 XML. A Tree physically may be a DOM tree, a series of well balanced parse
 			 events (such as those coming from a SAX2 ContentHander), a series of requests
 			 (the result of which can describe a tree), or a stream of marked-up
-			 characters.</P><P><CENTER><IMG alt="xslt_abstract.gif" src="images/xslt_abstract.gif"/></CENTER></P><P>The primary interface for Xalan 2.0 external usage is defined in the <A href="../apidocs/javax/xml/transform/package-summary.html#package_description">javax.xml.transform</A> interfaces.  These interfaces define a standard and powerful interface to perform tree-based transformations.</P> 
-	 <P>The internal architecture of Xalan 2.0 is divided into four major modules, and various smaller
-		modules. The main modules are:</P> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/processor/package-summary.html">org.apache.xalan.processor</A></DT> 
-		<DD>The module that processes the stylesheet, and provides the main
-		  entry point into Xalan.</DD> 
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/templates/package-summary.html">org.apache.xalan.templates</A></DT> 
-		<DD>The module that defines the stylesheet structures, including the
+			 characters.</p><p><center><img alt="xslt_abstract.gif" src="images/xslt_abstract.gif"/></center></p><p>The primary interface for Xalan 2.0 external usage is defined in the <a href="../apidocs/javax/xml/transform/package-summary.html#package_description">javax.xml.transform</a> interfaces.  These interfaces define a standard and powerful interface to perform tree-based transformations.</p> 
+	 <p>The internal architecture of Xalan 2.0 is divided into four major modules, and various smaller
+		modules. The main modules are:</p> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/processor/package-summary.html">org.apache.xalan.processor</a></dt> 
+		<dd>The module that processes the stylesheet, and provides the main
+		  entry point into Xalan.</dd> 
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/templates/package-summary.html">org.apache.xalan.templates</a></dt> 
+		<dd>The module that defines the stylesheet structures, including the
 		  Stylesheet object, template element instructions, and Attribute Value
-		  Templates. </DD> 
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/transformer/package-summary.html">org.apache.xalan.transformer</A></DT> 
-		<DD>The module that applies the source tree to the Templates, and
-		  produces a result tree.</DD> 
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xpath/package-summary.html">org.apache.xpath</A></DT> 
-		<DD>The module that processes both XPath expressions, and XSLT Match
-		  patterns.</DD> 
-	 </DL> 
-	 <P>In addition to the above modules, Xalan implements the
-		<A href="../apidocs/javax/xml/transform/package-summary.html#package_description">javax.xml.transform</A> interfaces, and depends on the
-	 <A href="http://www.megginson.com/SAX/Java/index.html">SAX2</A> and <A href="http://www.w3.org/TR/DOM-Level-2/">DOM</A> packages.
-</P><P><CENTER><IMG alt="trax.gif" src="images/trax.gif"/></CENTER></P><P>There is also a general utilities package that contains both XML utility
+		  Templates. </dd> 
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/transformer/package-summary.html">org.apache.xalan.transformer</a></dt> 
+		<dd>The module that applies the source tree to the Templates, and
+		  produces a result tree.</dd> 
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xpath/package-summary.html">org.apache.xpath</a></dt> 
+		<dd>The module that processes both XPath expressions, and XSLT Match
+		  patterns.</dd> 
+	 </dl> 
+	 <p>In addition to the above modules, Xalan implements the
+		<a href="../apidocs/javax/xml/transform/package-summary.html#package_description">javax.xml.transform</a> interfaces, and depends on the
+	 <a href="http://www.megginson.com/SAX/Java/index.html">SAX2</a> and <a href="http://www.w3.org/TR/DOM-Level-2/">DOM</a> packages.
+</p><p><center><img alt="trax.gif" src="images/trax.gif"/></center></p><p>There is also a general utilities package that contains both XML utility
 	 classes such as QName, but generally useful classes such as
-	 StringToIntTable.</P> 
-	 <P>In the diagram below, the dashed lines denote visibility. All packages
-		access the SAX2 and DOM packages.</P> 
-	 <P><CENTER><IMG alt="xalan1_1x1.gif" src="images/xalan1_1x1.gif"/></CENTER></P> 
-	 <P>In addition to the above packages, there are the following additional
-		packages:</P> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/client/package-summary.html">org.apache.xalan.client</A></DT> 
-		<DD>This package has a client applet. I suspect this should be moved
-		  into the samples directory.</DD> 
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/extensions/package-summary.html">org.apache.xalan.extensions</A></DT> 
-		<DD>This holds classes belonging to the Xalan extensions mechanism,
-		  which allows Java code and script to be called from within a stylesheet.</DD>
+	 StringToIntTable.</p> 
+	 <p>In the diagram below, the dashed lines denote visibility. All packages
+		access the SAX2 and DOM packages.</p> 
+	 <p><center><img alt="xalan1_1x1.gif" src="images/xalan1_1x1.gif"/></center></p> 
+	 <p>In addition to the above packages, there are the following additional
+		packages:</p> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/client/package-summary.html">org.apache.xalan.client</a></dt> 
+		<dd>This package has a client applet. I suspect this should be moved
+		  into the samples directory.</dd> 
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/extensions/package-summary.html">org.apache.xalan.extensions</a></dt> 
+		<dd>This holds classes belonging to the Xalan extensions mechanism,
+		  which allows Java code and script to be called from within a stylesheet.</dd>
 		
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/lib/package-summary.html">org.apache.xalan.lib</A></DT> 
-		<DD>This is the built-in Xalan extensions library, which holds
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/lib/package-summary.html">org.apache.xalan.lib</a></dt> 
+		<dd>This is the built-in Xalan extensions library, which holds
 		  extensions such as Redirect (which allows a stylesheet to produce multiple
-		  output files).</DD> 
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/res/package-summary.html">org.apache.xalan.res</A></DT> 
-		<DD>This holds resource files needed by Xalan, such as error message
-		  resources.</DD> 
-	 </DL> 
+		  output files).</dd> 
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/res/package-summary.html">org.apache.xalan.res</a></dt> 
+		<dd>This holds resource files needed by Xalan, such as error message
+		  resources.</dd> 
+	 </dl> 
 	  
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/trace/package-summary.html">org.apache.xalan.trace</A></DT> 
-		<DD>This package contains classes and interfaces that allow a caller to
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/trace/package-summary.html">org.apache.xalan.trace</a></dt> 
+		<dd>This package contains classes and interfaces that allow a caller to
 		  add trace listeners to the transformation, allowing an interface to XSLT
-		  debuggers and similar tools.</DD> 
-	 </DL> 
-	 <DL> 
-		<DT><A href="../apidocs/org/apache/xalan/xslt/package-summary.html">org.apache.xalan.xslt</A></DT> 
-		<DD>This package holds the Xalan2 command line processor.</DD> 
-	 </DL> 
-  <P>A more conceptual view of this architecture is as follows:</P><P><CENTER><IMG alt="Picture of conceptual architecture." src="images/conceptual.gif"/></CENTER></P><A name="process"><!--anchor--></A> 
-  <H2>Process Module</H2> 
-	 <P>The <A href="../apidocs/org/apache/xalan/processor/package-summary.html">org.apache.xalan.processor</A> module implements the
-		<A href="../apidocs/javax/xml/transform/TransformerFactory.html">javax.xml.transform.TransformerFactory</A> interface, which provides a
+		  debuggers and similar tools.</dd> 
+	 </dl> 
+	 <dl> 
+		<dt><a href="../apidocs/org/apache/xalan/xslt/package-summary.html">org.apache.xalan.xslt</a></dt> 
+		<dd>This package holds the Xalan2 command line processor.</dd> 
+	 </dl> 
+  <p>A more conceptual view of this architecture is as follows:</p><p><center><img alt="Picture of conceptual architecture." src="images/conceptual.gif"/></center></p><a name="process"><!--anchor--></a> 
+  <h2>Process Module</h2> 
+	 <p>The <a href="../apidocs/org/apache/xalan/processor/package-summary.html">org.apache.xalan.processor</a> module implements the
+		<a href="../apidocs/javax/xml/transform/TransformerFactory.html">javax.xml.transform.TransformerFactory</a> interface, which provides a
 		factory method for creating a concrete Processor instance, and provides methods
-		for creating a <A href="../apidocs/javax/xml/transform/Templates.html">javax.xml.transform.Templates</A> instance, which, in
+		for creating a <a href="../apidocs/javax/xml/transform/Templates.html">javax.xml.transform.Templates</a> instance, which, in
 		Xalan and XSLT terms, is the Stylesheet. Thus the task of the process module is
 		to read the XSLT input in the form of a file, stream, SAX events, or a DOM
-		tree, and produce a Templates/Stylesheet object.</P> 
-	 <P>The overall strategy is to define a schema in that dictates the legal
+		tree, and produce a Templates/Stylesheet object.</p> 
+	 <p>The overall strategy is to define a schema in that dictates the legal
 		structure for XSLT elements and attributes, and to associate with those
 		elements construction-time processors that can fill in the appropriate fields
 		in the top-level Stylesheet object, and also associate classes in the templates
 		module that can be created in a generalized fashion. This makes the validation
-		object-to-class associations centralized and declarative.</P> 
-	 <P>The schema's root class is
-		<A href="../apidocs/org/apache/xalan/processor/XSLTSchema.html">org.apache.xalan.processor.XSLTSchema</A>, and it is here that the
+		object-to-class associations centralized and declarative.</p> 
+	 <p>The schema's root class is
+		<a href="../apidocs/org/apache/xalan/processor/XSLTSchema.html">org.apache.xalan.processor.XSLTSchema</a>, and it is here that the
 		XSLT schema structure is defined. XSLTSchema uses
-		<A href="../apidocs/org/apache/xalan/processor/XSLTElementDef.html">org.apache.xalan.processor.XSLTElementDef</A> to define elements, and
-		<A href="../apidocs/org/apache/xalan/processor/XSLTAttributeDef.html">org.apache.xalan.processor.XSLTAttributeDef</A> to define attributes.
+		<a href="../apidocs/org/apache/xalan/processor/XSLTElementDef.html">org.apache.xalan.processor.XSLTElementDef</a> to define elements, and
+		<a href="../apidocs/org/apache/xalan/processor/XSLTAttributeDef.html">org.apache.xalan.processor.XSLTAttributeDef</a> to define attributes.
 		Both classes hold the allowed namespace, local name, and type of element or
 		attribute. The XSLTElementDef also holds a reference to a
-		<A href="../apidocs/org/apache/xalan/processor/XSLTElementProcessor.html">org.apache.xalan.processor.XSLTElementProcessor</A>, and a sometimes a
-		<CODE><FONT face="courier, monospaced">Class</FONT></CODE> object, with which it can create objects that derive from
-		<A href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html">org.apache.xalan.templates.ElemTemplateElement</A>. In addition, the
+		<a href="../apidocs/org/apache/xalan/processor/XSLTElementProcessor.html">org.apache.xalan.processor.XSLTElementProcessor</a>, and a sometimes a
+		<code><font face="courier, monospaced">Class</font></code> object, with which it can create objects that derive from
+		<a href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html">org.apache.xalan.templates.ElemTemplateElement</a>. In addition, the
 		XSLTElementDef instance holds a list of XSLTElementDef instances that define
 		legal elements or character events that are allowed as children of the given
-		element.</P> 
-	 <P>The implementation of the <A href="../apidocs/javax/xml/transform/TransformerFactory.html">javax.xml.transform.TransformerFactory</A>
-		interface is in <A href="../apidocs/org/apache/xalan/processor/TransformerFactoryImpl.html">org.apache.xalan.processor.TransformerFactoryImpl</A>,
-		which creates a <A href="../apidocs/org/apache/xalan/processor/StylesheetHandler.html">org.apache.xalan.processor.StylesheetHandler</A>
+		element.</p> 
+	 <p>The implementation of the <a href="../apidocs/javax/xml/transform/TransformerFactory.html">javax.xml.transform.TransformerFactory</a>
+		interface is in <a href="../apidocs/org/apache/xalan/processor/TransformerFactoryImpl.html">org.apache.xalan.processor.TransformerFactoryImpl</a>,
+		which creates a <a href="../apidocs/org/apache/xalan/processor/StylesheetHandler.html">org.apache.xalan.processor.StylesheetHandler</a>
 		instance. This instance acts as the ContentHandler for the parse events, and is
-		handed to the <A href="../apidocs/org/xml/sax/XMLReader.html">org.xml.sax.XMLReader</A>, which the StylesheetProcessor
-		uses to parse the XSLT document. The <CODE><FONT face="courier, monospaced">StylesheetHandler</FONT></CODE> then receives the parse
+		handed to the <a href="../apidocs/org/xml/sax/XMLReader.html">org.xml.sax.XMLReader</a>, which the StylesheetProcessor
+		uses to parse the XSLT document. The <code><font face="courier, monospaced">StylesheetHandler</font></code> then receives the parse
 		events, which maintains the state of the construction, and passes the events on
-		to the appropriate <CODE><FONT face="courier, monospaced">XSLTElementProcessor</FONT></CODE> for the given event, as dictated by the
-		<CODE><FONT face="courier, monospaced">XSLTElementDef</FONT></CODE> that is associated with the given event.</P> 
-	 <A name="templates"><!--anchor--></A> 
-  <H2>Templates Module</H2> 
-	 <P>The <A href="../apidocs/org/apache/xalan/templates/package-summary.html">org.apache.xalan.templates</A> module implements the
-		<A href="../apidocs/javax/xml/transform/Templates.html">javax.xml.transform.Templates</A> interface, and defines a set of
+		to the appropriate <code><font face="courier, monospaced">XSLTElementProcessor</font></code> for the given event, as dictated by the
+		<code><font face="courier, monospaced">XSLTElementDef</font></code> that is associated with the given event.</p> 
+	 <a name="templates"><!--anchor--></a> 
+  <h2>Templates Module</h2> 
+	 <p>The <a href="../apidocs/org/apache/xalan/templates/package-summary.html">org.apache.xalan.templates</a> module implements the
+		<a href="../apidocs/javax/xml/transform/Templates.html">javax.xml.transform.Templates</a> interface, and defines a set of
 		classes that represent a Stylesheet. The primary purpose of this module is to
 		hold stylesheet data, not to perform procedural tasks associated with the
 		construction of the data, nor tasks associated with the transformation itself.
-		</P> 
-	 <P>The base class of all templates objects that are associated with an XSLT element is the <A href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html">ElemTemplateElement</A> object, which in turn implements <A href="../apidocs/org/apache/xml/utils/UnImplNode.html">UnImplNode</A>.  A <CODE><FONT face="courier, monospaced">ElemTemplateElement</FONT></CODE> object must be immutable once it's constructed, so that it may be shared among multiple threads concurrently.  Ideally, [...]
-		<CODE><FONT face="courier, monospaced">Templates</FONT></CODE> interface, is a type of <A href="../apidocs/org/apache/xalan/templates/StylesheetComposed.html">StylesheetComposed</A>,
-		which is a <A href="../apidocs/org/apache/xalan/templates/Stylesheet.html">Stylesheet</A> composed of itself and all included
-		<CODE><FONT face="courier, monospaced">Stylesheet</FONT></CODE> objects. A <CODE><FONT face="courier, monospaced">StylesheetRoot</FONT></CODE> has a global
-		imports list, which is a list of all imported <CODE><FONT face="courier, monospaced">StylesheetComposed</FONT></CODE>
-		instances. From each <CODE><FONT face="courier, monospaced">StylesheetComposed</FONT></CODE> object, one can iterate
-		through the list of directly or indirectly included <CODE><FONT face="courier, monospaced">Stylesheet</FONT></CODE>
+		</p> 
+	 <p>The base class of all templates objects that are associated with an XSLT element is the <a href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html">ElemTemplateElement</a> object, which in turn implements <a href="../apidocs/org/apache/xml/utils/UnImplNode.html">UnImplNode</a>.  A <code><font face="courier, monospaced">ElemTemplateElement</font></code> object must be immutable once it's constructed, so that it may be shared among multiple threads concurrently.  Ideally, [...]
+		<code><font face="courier, monospaced">Templates</font></code> interface, is a type of <a href="../apidocs/org/apache/xalan/templates/StylesheetComposed.html">StylesheetComposed</a>,
+		which is a <a href="../apidocs/org/apache/xalan/templates/Stylesheet.html">Stylesheet</a> composed of itself and all included
+		<code><font face="courier, monospaced">Stylesheet</font></code> objects. A <code><font face="courier, monospaced">StylesheetRoot</font></code> has a global
+		imports list, which is a list of all imported <code><font face="courier, monospaced">StylesheetComposed</font></code>
+		instances. From each <code><font face="courier, monospaced">StylesheetComposed</font></code> object, one can iterate
+		through the list of directly or indirectly included <code><font face="courier, monospaced">Stylesheet</font></code>
 		objects, and one call also iterate through the list of all
-		<CODE><FONT face="courier, monospaced">StylesheetComposed</FONT></CODE> objects of lesser import precedence.
-		<CODE><FONT face="courier, monospaced">StylesheetRoot</FONT></CODE> is a <CODE><FONT face="courier, monospaced">StylesheetComposed</FONT></CODE>, which is a
-		<CODE><FONT face="courier, monospaced">Stylesheet</FONT></CODE>.</P> 
-	 <P>Each stylesheet has a set of properties, which can be set by various
+		<code><font face="courier, monospaced">StylesheetComposed</font></code> objects of lesser import precedence.
+		<code><font face="courier, monospaced">StylesheetRoot</font></code> is a <code><font face="courier, monospaced">StylesheetComposed</font></code>, which is a
+		<code><font face="courier, monospaced">Stylesheet</font></code>.</p> 
+	 <p>Each stylesheet has a set of properties, which can be set by various
 		means, usually either via an attribute on xsl:stylesheet, or via a top-level
 		xsl instruction (for instance, xsl:attribute-set). The get methods for these
-		properties only access the declaration within the given <CODE><FONT face="courier, monospaced">Stylesheet</FONT></CODE>
+		properties only access the declaration within the given <code><font face="courier, monospaced">Stylesheet</font></code>
 		object, and never takes into account included or imported stylesheets. The
-		<CODE><FONT face="courier, monospaced">StylesheetComposed</FONT></CODE> derivative object, if it is a root
-		<CODE><FONT face="courier, monospaced">Stylesheet</FONT></CODE> or imported <CODE><FONT face="courier, monospaced">Stylesheet</FONT></CODE>, has &quot;composed&quot;
+		<code><font face="courier, monospaced">StylesheetComposed</font></code> derivative object, if it is a root
+		<code><font face="courier, monospaced">Stylesheet</font></code> or imported <code><font face="courier, monospaced">Stylesheet</font></code>, has &quot;composed&quot;
 		getter methods that do take into account imported and included stylesheets, for
-		some of these properties.</P> 
+		some of these properties.</p> 
 	  
-  <A name="transformer"><!--anchor--></A> 
-  <H2>Transformer Module</H2> 
-	 <P>The <A href="../apidocs/org/apache/xalan/transformer/package-summary.html">Transformer</A> module is in charge of run-time transformations.  The <A href="../apidocs/org/apache/xalan/transformer/TransformerImpl.html">TransformerImpl</A> object, which implements the TrAX <A href="../apidocs/javax/xml/transform/Transformer.html">Transformer</A> interface, and has an association with a <A href="../apidocs/org/apache/xalan/templates/StylesheetRoot.html">StylesheetRoot</A> object, begins  [...]
-tree content handler (often a <A href="../apidocs/org/apache/xalan/serialize/package-summary.html">Serializer</A>), and the <CODE><FONT face="courier, monospaced">Transformer</FONT></CODE>.  For one thing, 
+  <a name="transformer"><!--anchor--></a> 
+  <h2>Transformer Module</h2> 
+	 <p>The <a href="../apidocs/org/apache/xalan/transformer/package-summary.html">Transformer</a> module is in charge of run-time transformations.  The <a href="../apidocs/org/apache/xalan/transformer/TransformerImpl.html">TransformerImpl</a> object, which implements the TrAX <a href="../apidocs/javax/xml/transform/Transformer.html">Transformer</a> interface, and has an association with a <a href="../apidocs/org/apache/xalan/templates/StylesheetRoot.html">StylesheetRoot</a> object, begins  [...]
+tree content handler (often a <a href="../apidocs/org/apache/xalan/serialize/package-summary.html">Serializer</a>), and the <code><font face="courier, monospaced">Transformer</font></code>.  For one thing, 
  we have to delay the call to
  startElement(name, atts) because of the
  xsl:attribute and xsl:copy calls.  In other words,
  the attributes have to be fully collected before you
- can call startElement.</P><P>Other important classes in this package are:</P><DL><DT>CountersTable and Counter</DT><DD>The <A href="../apidocs/org/apache/xalan/transformer/Counter.html">Counter</A> class does incremental counting for support of xsl:number.
+ can call startElement.</p><p>Other important classes in this package are:</p><dl><dt>CountersTable and Counter</dt><dd>The <a href="../apidocs/org/apache/xalan/transformer/Counter.html">Counter</a> class does incremental counting for support of xsl:number.
  This class stores a cache of counted nodes (m_countNodes). 
   It tries to cache the counted nodes in document order... 
- the node count is based on its position in the cache list.  The <A href="../apidocs/org/apache/xalan/transformer/CountersTable.html">CountersTable</A> class is a table of counters, keyed by <A href="../apidocs/org/apache/xalan/templates/ElemNumber.html">ElemNumber</A> objects, each 
- of which has a list of <CODE><FONT face="courier, monospaced">Counter</FONT></CODE> objects.</DD></DL><DL><DT>KeyIterator, KeyManager, and KeyTable</DT><DD>These classes handle mapping of keys declared with the xsl:key element.  They attempt to work incrementally, locating nodes on request but indexing all as they traverse the tree, and stopping when the requested node is found.  If a requested node is not found, then the entire tree will be traversed.  Such is the nature of xsl:key.</D [...]
+ the node count is based on its position in the cache list.  The <a href="../apidocs/org/apache/xalan/transformer/CountersTable.html">CountersTable</a> class is a table of counters, keyed by <a href="../apidocs/org/apache/xalan/templates/ElemNumber.html">ElemNumber</a> objects, each 
+ of which has a list of <code><font face="courier, monospaced">Counter</font></code> objects.</dd></dl><dl><dt>KeyIterator, KeyManager, and KeyTable</dt><dd>These classes handle mapping of keys declared with the xsl:key element.  They attempt to work incrementally, locating nodes on request but indexing all as they traverse the tree, and stopping when the requested node is found.  If a requested node is not found, then the entire tree will be traversed.  Such is the nature of xsl:key.</d [...]
  to get information about the state of the transform.  It 
- is primarily intended as a tooling interface.</DD></DL><P>Even though the following modules are defined in the <CODE><FONT face="courier, monospaced">org.apache.xalan</FONT></CODE> package, instead of the transformer package, they are defined in this section as they are mostly related to runtime transformation.</P><A name="stree"><!--anchor--></A>
-  <H3>Stree Module [and discussions about streaming]</H3>
-  <P>The Stree module implements the default <A href="http://www.w3.org/TR/xpath#data-model">Source Tree </A> for Xalan, that is to be transformed.  It implements read-only <A href="http://www.w3.org/TR/DOM-Level-2/">DOM2</A> interfaces, and provides some information needed for fast transforms, such as document order indexes.  It also attempts to allow an incremental transform by launching the transform on a secondary thread as soon as the SAX2 <A href="http://www.megginson.com/SAX/Java/ [...]
-<A name="serializer"><!--anchor--></A>
-<H3>Serializer Module</H3>
-<P>XML serialization is a term used for turning a tree or set of events into a stream, and should not be confused with Java object serialization.  The Xalan serializers implement the <A href="http://www.megginson.com/SAX/Java/javadoc/org/xml/sax/ContentHandler.html">ContentHandler</A> to turn parser events coming from the transform, into a stream of XML, HTML, or plain text.  The serializers also implement the <A href="../apidocs/org/apache/xml/serializer/Serializer.html">Serializer</A>  [...]
-<H3>Extensions Module</H3>
-<P>This package contains an implementation of Xalan Extension Mechanism, which uses the <A href="http://oss.software.ibm.com/developerworks/opensource/bsf/">Bean Scripting Framework</A>.
+ is primarily intended as a tooling interface.</dd></dl><p>Even though the following modules are defined in the <code><font face="courier, monospaced">org.apache.xalan</font></code> package, instead of the transformer package, they are defined in this section as they are mostly related to runtime transformation.</p><a name="stree"><!--anchor--></a>
+  <h3>Stree Module [and discussions about streaming]</h3>
+  <p>The Stree module implements the default <a href="http://www.w3.org/TR/xpath#data-model">Source Tree </a> for Xalan, that is to be transformed.  It implements read-only <a href="http://www.w3.org/TR/DOM-Level-2/">DOM2</a> interfaces, and provides some information needed for fast transforms, such as document order indexes.  It also attempts to allow an incremental transform by launching the transform on a secondary thread as soon as the SAX2 <a href="http://www.megginson.com/SAX/Java/ [...]
+<a name="serializer"><!--anchor--></a>
+<h3>Serializer Module</h3>
+<p>XML serialization is a term used for turning a tree or set of events into a stream, and should not be confused with Java object serialization.  The Xalan serializers implement the <a href="http://www.megginson.com/SAX/Java/javadoc/org/xml/sax/ContentHandler.html">ContentHandler</a> to turn parser events coming from the transform, into a stream of XML, HTML, or plain text.  The serializers also implement the <a href="../apidocs/org/apache/xml/serializer/Serializer.html">Serializer</a>  [...]
+<h3>Extensions Module</h3>
+<p>This package contains an implementation of Xalan Extension Mechanism, which uses the <a href="http://oss.software.ibm.com/developerworks/opensource/bsf/">Bean Scripting Framework</a>.
 
-The Bean Scripting Framework (BSF) is an architecture for incorporating scripting into Java applications and applets.  Scripting languages such as Netscape Rhino (Javascript), VBScript, Perl, Tcl, Python, NetRexx and Rexx can be used to augment XSLT's functionality.  In addition, the Xalan extension mechanism allows use of Java classes.  See the <A href="http://xml.apache.org/xalan/extensions.html">Xalan-J 2 extension documentation</A> for a description of using extensions in a styleshee [...]
-  <H2>XPath Module</H2> 
-	 <P>This module is pulled out of the Xalan package, and put in the org.apache package, to emphasize that the intention is that this package can be used independently of the XSLT engine, even though it has dependencies on the Xalan utils module.</P><P><CENTER><IMG alt="xalan ---> xpath" src="images/org_apache.gif"/></CENTER></P> 
-  <P>The XPath module first compiles the XPath strings into expression trees, and then executes these expressions via a call to the XPath execute(...) function.  </P>  <P>Major classes are:</P><DL><DT>XPath</DT><DD>Represents a compiled XPath.  Major function is <CODE><FONT face="courier, monospaced">XObject execute(XPathContext xctxt, Node contextNode, 
-                         PrefixResolver namespaceContext)</FONT></CODE>.</DD></DL><DL><DT>XPathAPI</DT><DD>The methods in this class are convenience methods into the
- low-level XPath API.</DD></DL><DL><DT>XPathContext</DT><DD>Used as the runtime execution context for XPath.</DD></DL><DL><DT>DOMHelper</DT><DD>Used as a helper for handling DOM issues.  May be subclassed to take advantage 
-   of specific DOM implementations.</DD></DL><DL><DT>SourceTreeManager</DT><DD>bottlenecks all management of source trees.  The methods
+The Bean Scripting Framework (BSF) is an architecture for incorporating scripting into Java applications and applets.  Scripting languages such as Netscape Rhino (Javascript), VBScript, Perl, Tcl, Python, NetRexx and Rexx can be used to augment XSLT's functionality.  In addition, the Xalan extension mechanism allows use of Java classes.  See the <a href="http://xml.apache.org/xalan/extensions.html">Xalan-J 2 extension documentation</a> for a description of using extensions in a styleshee [...]
+  <h2>XPath Module</h2> 
+	 <p>This module is pulled out of the Xalan package, and put in the org.apache package, to emphasize that the intention is that this package can be used independently of the XSLT engine, even though it has dependencies on the Xalan utils module.</p><p><center><img alt="xalan ---> xpath" src="images/org_apache.gif"/></center></p> 
+  <p>The XPath module first compiles the XPath strings into expression trees, and then executes these expressions via a call to the XPath execute(...) function.  </p>  <p>Major classes are:</p><dl><dt>XPath</dt><dd>Represents a compiled XPath.  Major function is <code><font face="courier, monospaced">XObject execute(XPathContext xctxt, Node contextNode, 
+                         PrefixResolver namespaceContext)</font></code>.</dd></dl><dl><dt>XPathAPI</dt><dd>The methods in this class are convenience methods into the
+ low-level XPath API.</dd></dl><dl><dt>XPathContext</dt><dd>Used as the runtime execution context for XPath.</dd></dl><dl><dt>DOMHelper</dt><dd>Used as a helper for handling DOM issues.  May be subclassed to take advantage 
+   of specific DOM implementations.</dd></dl><dl><dt>SourceTreeManager</dt><dd>bottlenecks all management of source trees.  The methods
  in this class should allow easy garbage collection of source 
- trees, and should centralize parsing for those source trees.</DD></DL><DL><DT>Expression</DT><DD>The base-class of all expression objects, allowing polymorphic behaviors.</DD></DL><P>The general architecture of the XPath module is divided into the compiler, and categories of expression objects.</P><P><CENTER><IMG alt="xpath modules" src="images/xpath.gif"/></CENTER></P><P>The most important module is the axes module.  This module implements the DOM2 <A href="http://www.w3.org/TR/DOM-Lev [...]
-<H3>XPath Database Connection</H3>
-<P>An important part of the XPath design in both Xalan 1 and Xalan 2, is to enable database connections to be used as drivers directly to the XPath <A href="http://www.w3.org/TR/xpath#location-paths">LocationPath</A> handling.  This allows databases to be directly connected to the transform, and be able to take advantage of internal indexing and the like.  While in Xalan 1 this was done via the <A href="http://xml.apache.org/xalan/apidocs/org/apache/xalan/xpath/XLocator.html">XLocator</A [...]
-  <H2>Utils Package</H2> 
-  <P>This package contains general utilities for use by both the xalan and xpath packages.</P><A name="other"><!--anchor--></A>
-  <H2>Other Packages</H2> 
-	 <DL><DT>client</DT><DD>Implementation of Xalan Applet [should we keep this?].
+ trees, and should centralize parsing for those source trees.</dd></dl><dl><dt>Expression</dt><dd>The base-class of all expression objects, allowing polymorphic behaviors.</dd></dl><p>The general architecture of the XPath module is divided into the compiler, and categories of expression objects.</p><p><center><img alt="xpath modules" src="images/xpath.gif"/></center></p><p>The most important module is the axes module.  This module implements the DOM2 <a href="http://www.w3.org/TR/DOM-Lev [...]
+<h3>XPath Database Connection</h3>
+<p>An important part of the XPath design in both Xalan 1 and Xalan 2, is to enable database connections to be used as drivers directly to the XPath <a href="http://www.w3.org/TR/xpath#location-paths">LocationPath</a> handling.  This allows databases to be directly connected to the transform, and be able to take advantage of internal indexing and the like.  While in Xalan 1 this was done via the <a href="http://xml.apache.org/xalan/apidocs/org/apache/xalan/xpath/XLocator.html">XLocator</a [...]
+  <h2>Utils Package</h2> 
+  <p>This package contains general utilities for use by both the xalan and xpath packages.</p><a name="other"><!--anchor--></a>
+  <h2>Other Packages</h2> 
+	 <dl><dt>client</dt><dd>Implementation of Xalan Applet [should we keep this?].
 
-</DD></DL> 
+</dd></dl> 
 		 
 		 
-		<DL><DT>lib</DT><DD>Implementation of Xalan-specific extensions.</DD></DL><DL><DT>res</DT><DD>Contains strings that require internationalization.</DD></DL><A name="compilation"><!--anchor--></A>
-<H2>Xalan Stylesheet Complilation to Java</H2>
-<P>We are doing some work on compiling stylesheet objects to Java.  This is a work in progress, and is not meant for general use yet.  For the moment, we are writing out Java text files, and then compiling them to bytecodes via javac, rather than directly producing bytecodes.  The CompilingStylesheetProcessor derives from TransformerFactoryImpl to produce these classes, which are then bundled into a jar file.  For the moment the full Xalan jar is required, but we're looking at ways to on [...]
-<H2>Future Optimizations</H2>
-<P>This section enumerates some optimizations that we're planning to do in future versions of Xalan.</P><P>Likely near term optimizations (next six months?):</P><OL><LI>By pre-analysis of the stylesheet, prune nodes from the tree that have been processed and can be predicted that they won't be visited again.</LI><LI>Eliminate redundent expressions (xsl:when, variable sets, rooted patterns, etc.).</LI><LI>Optimize variable patterns such as &lt;xsl:variable name=&quot;foo&quot;&gt;&lt;xsl: [...]
-  <H2>Coding Conventions</H2> 
-	 <P>This section documents the coding conventions used in the Xalan
-		source.</P> 
-	 <OL> 
-		<LI>Class files are arranged with constructors and possibly an init()
+		<dl><dt>lib</dt><dd>Implementation of Xalan-specific extensions.</dd></dl><dl><dt>res</dt><dd>Contains strings that require internationalization.</dd></dl><a name="compilation"><!--anchor--></a>
+<h2>Xalan Stylesheet Complilation to Java</h2>
+<p>We are doing some work on compiling stylesheet objects to Java.  This is a work in progress, and is not meant for general use yet.  For the moment, we are writing out Java text files, and then compiling them to bytecodes via javac, rather than directly producing bytecodes.  The CompilingStylesheetProcessor derives from TransformerFactoryImpl to produce these classes, which are then bundled into a jar file.  For the moment the full Xalan jar is required, but we're looking at ways to on [...]
+<h2>Future Optimizations</h2>
+<p>This section enumerates some optimizations that we're planning to do in future versions of Xalan.</p><p>Likely near term optimizations (next six months?):</p><ol><li>By pre-analysis of the stylesheet, prune nodes from the tree that have been processed and can be predicted that they won't be visited again.</li><li>Eliminate redundent expressions (xsl:when, variable sets, rooted patterns, etc.).</li><li>Optimize variable patterns such as &lt;xsl:variable name=&quot;foo&quot;&gt;&lt;xsl: [...]
+  <h2>Coding Conventions</h2> 
+	 <p>This section documents the coding conventions used in the Xalan
+		source.</p> 
+	 <ol> 
+		<li>Class files are arranged with constructors and possibly an init()
 		  function first, public API methods second, package specific, protected, and
 		  private methods following (arranged based on related functionality), member
-		  variables with their getter/setter access methods last.</LI> 
-		<LI>Non-static member variables are prefixed with &quot;m_&quot;.</LI> 
-		<LI>static final member variables should always be upper case, without
-		  the &quot;m_&quot; prefix. They need not have accessors.</LI> 
-		<LI>Private member variables that are not accessed outside the class need
-		  not have getter/setter methods declared.</LI> 
-		<LI>Private member variables that are accessed outside the class should
+		  variables with their getter/setter access methods last.</li> 
+		<li>Non-static member variables are prefixed with &quot;m_&quot;.</li> 
+		<li>static final member variables should always be upper case, without
+		  the &quot;m_&quot; prefix. They need not have accessors.</li> 
+		<li>Private member variables that are not accessed outside the class need
+		  not have getter/setter methods declared.</li> 
+		<li>Private member variables that are accessed outside the class should
 		  have either package specific or public getter/setter methods declared. All
-		  accessors should follow the bean design patterns.</LI> 
-		<LI>Package-scoped member variables, public member variables, and
-		  protected member variables should not be declared.</LI> 
-	 </OL> 
-  <A name="open"><!--anchor--></A> 
+		  accessors should follow the bean design patterns.</li> 
+		<li>Package-scoped member variables, public member variables, and
+		  protected member variables should not be declared.</li> 
+	 </ol> 
+  <a name="open"><!--anchor--></a> 
   
-<HR/><FONT color="#0086b2" size="-1"><I>
-              Copyright &copy; 1999-2023 The Apache Software Foundation</I></FONT></BODY></HTML>
+<hr/><font color="#0086b2" size="-1"><i>
+              Copyright &copy; 1999-2023 The Apache Software Foundation</i></font></body></html>
diff --git a/xalan/src/site/xhtml/javadocOverview.xhtml b/xalan/src/site/xhtml/javadocOverview.xhtml
index 70ce354f..619ee880 100644
--- a/xalan/src/site/xhtml/javadocOverview.xhtml
+++ b/xalan/src/site/xhtml/javadocOverview.xhtml
@@ -18,8 +18,8 @@
 <html>
 <head><title>Xalan-Java 2</title></head>
 <body>
-<p>Xalan-Java implements the <A href="http://www.w3.org/TR/xslt" target="_top">W3C Recommendation 16 November 1999 XSL
-Transformations (XSLT) Version 1.0</A>.</p>
+<p>Xalan-Java implements the <a href="http://www.w3.org/TR/xslt" target="_top">W3C Recommendation 16 November 1999 XSL
+Transformations (XSLT) Version 1.0</a>.</p>
 <p>XLST is a stylesheet language for transforming XML documents into other XML documents, HTML documents, 
 other document types, or text. The language includes the XSL Transformation vocabulary and XPath, a language for
 addressing parts of an XML document. An XSL stylesheet describes how to transform the tree of nodes in the XML


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


[xalan-java] 02/06: Fix Maven group/artifact identifiers

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c33e7a6eb7e93590a821ad31a80c54830765f1a8
Author: kubycsolutions <ke...@kubyc.solutions>
AuthorDate: Sat Oct 14 18:24:16 2023 -0400

    Fix Maven group/artifact identifiers
---
 pom.xml                                  | 11 +++++------
 samples/pom.xml                          | 18 +++++++++---------
 serializer/pom.xml                       |  7 ++++---
 xalan/pom.xml                            | 16 ++++++++--------
 xalan2jtaglet/dependency-reduced-pom.xml | 24 ------------------------
 xalan2jtaglet/pom.xml                    |  9 +++++----
 6 files changed, 31 insertions(+), 54 deletions(-)

diff --git a/pom.xml b/pom.xml
index 4f446e11..dd5e7f8a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,6 @@
   <packaging>pom</packaging>
   <!-- KNOWN ISSUES:
 	"Production" jar/tar files?
-	Doclet and taglet (taglet working, but only for ./xalan?)
 	stylebook (currenly, see stylebook.docgen.sh)
        
        xalan-test compatibility/success/submodule
@@ -13,9 +12,9 @@
   -->
   
   <modelVersion>4.0.0</modelVersion>
-  <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
-  <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
-  <version>2.7.3-SNAPSHOT</version>
+  <groupId>xalan</groupId>
+  <artifactId>xalan-project</artifactId>
+  <version>2.7.3</version>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -165,9 +164,9 @@
 	    </taglet>
 	  </taglets>
 	  <tagletArtifact>
-	    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+	    <groupId>xalan</groupId>
 	    <artifactId>xalan2jtaglet</artifactId>
-	    <version>2.7.3-SNAPSHOT</version>
+	    <version>2.7.3</version>
 	  </tagletArtifact>
 
 	</configuration>
diff --git a/samples/pom.xml b/samples/pom.xml
index ce8e682e..2fce6e67 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -2,13 +2,13 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
-    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
-    <version>2.7.3-SNAPSHOT</version>
+    <artifactId>xalan-project</artifactId>
+    <groupId>xalan</groupId>
+    <version>2.7.3</version>
   </parent>
 
   <artifactId>samples</artifactId>
-  <name>Apache Xalan-Java 2.7.3 Samples</name>
+  <name>Apache Xalan-Java Samples</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
@@ -26,15 +26,15 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+      <groupId>xalan</groupId>
       <artifactId>serializer</artifactId>
-      <version>2.7.3-SNAPSHOT</version>
+      <version>2.7.3</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+      <groupId>xalan</groupId>
       <artifactId>xalan</artifactId>
-      <version>2.7.3-SNAPSHOT</version>
+      <version>2.7.3</version>
       <scope>provided</scope>
     </dependency>
 
@@ -114,7 +114,7 @@
 		  <exclude>org.apache.commons:commons-lang3</exclude>
 		  <exclude>org.apache.ant:ant</exclude>
 		  <exclude>org.apache.ant:ant-launcher</exclude>
-		  <exclude>apache-xalan-j-2.7.3-maint-main:serializer</exclude>
+		  <exclude>xalan:serializer</exclude>
 		  <exclude>de.jflex:jflex</exclude>	
 		</excludes>
 	      </artifactSet>
diff --git a/serializer/pom.xml b/serializer/pom.xml
index 364a8882..af9abcaf 100644
--- a/serializer/pom.xml
+++ b/serializer/pom.xml
@@ -3,10 +3,11 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
-    <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
-    <version>2.7.3-SNAPSHOT</version>
+    <groupId>xalan</groupId>
+    <artifactId>xalan-project</artifactId>
+    <version>2.7.3</version>
   </parent>
+
   <artifactId>serializer</artifactId>
   <name>XML Serializer</name>
   <description>Apache's XML serialization layer, as used in the Xalan XSLT processor</description>
diff --git a/xalan/pom.xml b/xalan/pom.xml
index 4dca507d..a47df1a4 100644
--- a/xalan/pom.xml
+++ b/xalan/pom.xml
@@ -1,13 +1,13 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
-    <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
-    <version>2.7.3-SNAPSHOT</version>
+    <groupId>xalan</groupId>
+    <artifactId>xalan-project</artifactId>
+    <version>2.7.3</version>
   </parent>
+
   <artifactId>xalan</artifactId>
-  <version>2.7.3-SNAPSHOT</version>
-  <name>Apache Xalan-Java 2.7.3</name>
+  <name>Apache Xalan-Java</name>
   <description>Apache's XSLT processor</description>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -116,7 +116,7 @@
 		  <exclude>org.apache.commons:commons-lang3</exclude>
 		  <exclude>org.apache.ant:ant</exclude>
 		  <exclude>org.apache.ant:ant-launcher</exclude>
-		  <exclude>apache-xalan-j-2.7.3-maint-main:serializer</exclude>
+		  <exclude>xalan:serializer</exclude>
 		  <exclude>de.jflex:jflex</exclude>	
 		</excludes>
 	      </artifactSet>
@@ -131,9 +131,9 @@
 
   <dependencies>
     <dependency>
-      <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
+      <groupId>xalan</groupId>
       <artifactId>serializer</artifactId>
-      <version>2.7.3-SNAPSHOT</version>
+      <version>2.7.3</version>
     </dependency>
 
     <!-- https://mvnrepository.com/artifact/org.apache.bcel/bcel -->
diff --git a/xalan2jtaglet/dependency-reduced-pom.xml b/xalan2jtaglet/dependency-reduced-pom.xml
deleted file mode 100644
index 60bc23e7..00000000
--- a/xalan2jtaglet/dependency-reduced-pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
-    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
-    <version>2.7.3-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>xalan2jtaglet</artifactId>
-  <name>xalan2jtaglet</name>
-  <description>Implementation of the @xsl.usage taglet, used in the Xalan package's javadoc to indicate classes which, while public for cross-module access, are not intended to be called by end-users.</description>
-  <dependencies>
-    <dependency>
-      <groupId>com.sun</groupId>
-      <artifactId>tools</artifactId>
-      <version>1.6.0</version>
-      <scope>system</scope>
-      <systemPath>${toolsjar}</systemPath>
-    </dependency>
-  </dependencies>
-  <properties>
-    <toolsjar>${java.home}/../lib/tools.jar</toolsjar>
-  </properties>
-</project>
diff --git a/xalan2jtaglet/pom.xml b/xalan2jtaglet/pom.xml
index 1ef604fc..9228b20a 100644
--- a/xalan2jtaglet/pom.xml
+++ b/xalan2jtaglet/pom.xml
@@ -3,12 +3,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>apache-xalan-j-2.7.3-maint-main</groupId>
-    <artifactId>apache-xalan-j-2.7.3-maint-main</artifactId>
-    <version>2.7.3-SNAPSHOT</version>
+    <groupId>xalan</groupId>
+    <artifactId>xalan-project</artifactId>
+    <version>2.7.3</version>
   </parent>
+
   <artifactId>xalan2jtaglet</artifactId>
-  <name>xalan2jtaglet</name>
+  <name>@xsl.usage taglet</name>
   <description>Implementation of the @xsl.usage taglet, used in the Xalan package's javadoc to indicate classes which, while public for cross-module access, are not intended to be called by end-users.</description>
 
   <!-- Needs com.sun.javadoc.*, of course.  WARNING: The rules for


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


[xalan-java] 04/06: Copy jarfiles up into build directory, for better compatibility with xalan-test.

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit b1a50d0bd97d5e08cf8419aef82e1efa8eade7df
Author: kubycsolutions <ke...@kubyc.solutions>
AuthorDate: Sun Oct 15 14:53:08 2023 -0400

    Copy jarfiles up into build directory, for better compatibility with xalan-test.
---
 pom.xml | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/pom.xml b/pom.xml
index dd5e7f8a..6753a37e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,6 +100,30 @@
 	<version>3.4.5</version>
       </plugin>
 
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>             
+            <id>copy-artifact</id>
+            <phase>package</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>${project.artifactId}</artifactId>
+                  <version>${project.version}</version>
+                  <type>${project.packaging}</type>
+                </artifactItem>
+              </artifactItems>
+              <outputDirectory>../build</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 


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


[xalan-java] 06/06: Remove spurious manifest file.

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1d58cdd6f16779ab08daccdecdfb28fd5452bde3
Author: kubycsolutions <ke...@kubyc.solutions>
AuthorDate: Mon Oct 16 11:08:19 2023 -0400

    Remove spurious manifest file.
---
 META-INF/MANIFEST.MF                               | 6 ------
 META-INF/maven/org.apache.bcel/bcel/pom.properties | 3 ---
 2 files changed, 9 deletions(-)

diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
deleted file mode 100644
index 0eb2be4e..00000000
--- a/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,6 +0,0 @@
-Manifest-Version: 1.0
-Archiver-Version: Plexus Archiver
-Built-By: keshlam
-Created-By: Apache Maven 3.6.3
-Build-Jdk: 1.8.0_382
-
diff --git a/META-INF/maven/org.apache.bcel/bcel/pom.properties b/META-INF/maven/org.apache.bcel/bcel/pom.properties
deleted file mode 100644
index fe6b7bec..00000000
--- a/META-INF/maven/org.apache.bcel/bcel/pom.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-artifactId=bcel
-groupId=org.apache.bcel
-version=6.7.0


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