logolineright
bottomhttp://xml.apache.org/http://www.apache.org/http://www.w3.org/
join
Home
separator
Xalan-J 2.7.1
Charter
separator
What's New
Release Notes
separator
Overview
Download/Build
Getting Started
Using XSLTC
separator
FAQs
separator
Sample Apps
Command Line
separator
Features
Transform API
XPath API
Usage Patterns
separator
Xalan-J API
Public APIs
DTM
separator
Extensions
Extensions Library
XSLTC Exts
separator
Xalan 2 Design
XSLTC Design
separator
Building a release
Testing
Bug Reporting
separator
Contact us
close

The following sections list XSLTC changes back to the incorporation of XSLTC into Xalan-Java.

Changes for Xalan-Java 2.7.0
 

XSLTC source code updates:

  • Committed by zongaro@apache.org on 2004/02/27
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java NodeSortRecordFactory.java SortSettings.java
    Committer's log entry: Restored old constructor of NodeSortRecordFactory and _collator field of NodeSortRecord for binary compatibility. These changes allow translets compiled with an earlier version of XSLTC to continue to run with the new version. They should not be used in newly compiled translets or in new code in XSLTC itself.
    Also introduced a SortSettings class that is used to bundle sort settings from NodeSortRecordFactory into instances of NodeSortRecord. That reduces some of the space overhead in constructing a NodeSortRecord.
    Reviewed by Igor Hersht (igorh@ca.ibm.com)

  • Committed by zongaro@apache.org on 2004/02/27
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
    Committer's log entry: Revived ForwardPositionIterator class and BasisLibrary.positionF purely to support backwards compatibility with translets compiled with earlier versions of XSLTC. New code should not reference either.
    Reviewed by Christine Li (jycli@ca.ibm.com).

  • Committed by igorh@apache.org on 2004/03/09
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeCounter.java
    Committer's log entry: xsl:number, minor code cleaning and optimization.

  • Committed by bhakti@apache.org on 2004/03/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: Check if the systemId for the stylesheet is null to avoid getting an NPE.

  • Committed by santiagopg@apache.org on 2004/03/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java
    Committer's log entry: Reverting latest patch by Arun. There are some problems with the new code to invoke functions dynamically (e.g. docbook reports a compile-time type check error). The approach taken to determine when to invoke methods dynamically needs to be revisted.

  • Committed by mkwan@apache.org on 2004/03/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Patch for bug 27417. If an output stream is created by the XSLTC transformer, close it after the transformation.

  • Committed by zongaro@apache.org on 2004/04/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
    Committer's log entry: Applying patch for bugs 27932 and 15333.
    Code was incorrectly calculating the set of templates to which an xsl:apply-imports instruction applies. It should consider all templates that the current template rule could override, which means that if the template appeared in a stylesheet that was included in another stylesheet, any templates imported into the including stylesheet have to be considered as well. The method Stylesheet.getMinimumDescendantPrecedence is responsible for this calculation.
    In addition, when code is generated for an xsl:apply-imports, if any template has local parameters, an empty stack frame has to be pushed before attempting to apply-imports. Otherwise, parameters from the template that contains the apply-imports instruction will be passed into the matching template.
    Reviewed by Joanne Tong (joannet@ca.ibm.com)

  • Committed by zongaro@apache.org on 2004/04/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: Applying patch for bug 27932.
    Code was incorrectly calculating the set of templates to which an xsl:apply-imports instruction applies. It should consider all templates that the current template rule could override, which means that if the template appeared in a stylesheet that was included in another stylesheet, any templates imported into the including stylesheet have to be considered as well. The method Stylesheet.getMinimumDescendantPrecedence is responsible for this calculation.
    Reviewed by Joanne Tong (joannet@ca.ibm.com)

  • Committed by bhakti@apache.org on 2004/05/13
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java
    Committer's log entry: In xsltc currently with the extension redirect the output file is created only if the parent dir exists. Making the behaviour similar to that of xalan wherein the parent directory is also created.

  • Committed by santiagopg@apache.org on 2004/05/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java
    Committer's log entry: Fix for Bugzilla 29120. The translet now stores a reference to the DocumentBuilderFactory which is used by nodeList2Iterator() in the basis library. Note that to reuse that reference you need to use the same transformer (not just the same template).

  • Committed by santiagopg@apache.org on 2004/05/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeValueTemplate.java
    Committer's log entry: Implemented a new parser for ATVs. The old was buggy: did not handle escaped curly braces in all cases and did not handled quotes at all. The old parser assumed that braces came in pairs, but it is possible to have an odd number as in "{{{$foo}}}". The new parser seems to handle all cases correctly.

  • Committed by santiagopg@apache.org on 2004/05/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralAttribute.java LiteralElement.java Parser.java SyntaxTreeNode.java
    Committer's log entry: Modified code to ensure line number information is propagated from parent to children to ensure we get informative error messages. This was particularly bad for errors in ATVs.

  • Committed by santiagopg@apache.org on 2004/05/25
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java
    Committer's log entry: Improved patch for Bugzilla 29120 based on Matthias' suggestion. A DOMImplementation is now cached for even better performance.

  • Committed by jycli@apache.org on 2004/05/26
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java Stylesheet.java
    Committer's log entry: If the local is set to Turkish, but the codepage is MS-DOS (US) 437. The BCEL InstructionFinder.search(String) method can not find any instructions contain letter I. In Turkish, there are 2 lower case i. Since the search() method is case insensitive, change the pattern string to use lower case.

  • Committed by santiagopg@apache.org on 2004/06/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
    Committer's log entry: Patch for Bugzilla 29411. New algorithm shoudl optimize the way NS decls are reported for nested literal elements. Note that the algorithm will not work accross non-literal elements. E.g., if there is an xsl:element between two literal elements, the inner literal element may report unnecessary NS delcs. This is just a simple way to ensure that any NS decls defined by the xsl:element instruction are re-defined in the inner literal (see namespace39 in the conf tests).

  • Committed by santiagopg@apache.org on 2004/06/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java
    Committer's log entry: Fixed a problem with peephole optimization patterns. I don't know if something changed in BCEL since the code was written, but the pattern syntax was not correct. I've also added a new common peephole pattern which should reduce then inner loop's length in some Translets.

  • Committed by igorh@apache.org on 2004/06/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java
    Committer's log entry: Fix for Bugzilla Bug 28622.

  • Committed by santiagopg@apache.org on 2004/06/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java StringType.java Type.java
    Committer's log entry: Patch for Bugzilla 27539 and related problems. The main problem was that hashCode() was not implemented correctly in ObjectType. To eleminate further problems I also removed Type.ObjectString as this type is the same as Type.String and the latter can be used in place of the former.

  • Committed by aruny@apache.org on 2004/07/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java
    Committer's log entry: Description: getNode should return the result DOM tree once TransformerHandler completes the transformation.

  • Committed by aruny@apache.org on 2004/07/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java
    Committer's log entry: Description: Patch for the support of extension attribute "intent-amount" for xsl:output. Supports the old URI {http://xml.apache.org/xslt} and new URI{http://xml.apache.org/xalan}.

  • Committed by aruny@apache.org on 2004/07/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java
    Committer's log entry: Description: Patch for concatenating adjacent text nodes.

  • Committed by minchau@apache.org on 2004/07/22
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
    Committer's log entry: Submitted by: Yash Talwar
    Reviewed by: Brian Minchau
    Fix for bugzilla 28796.

  • Committed by jycli@apache.org on 2004/08/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc TransletException.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/getopt GetOptsException.java IllegalArgumentException.java MissingOptArgException.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler CompilerException.java IllegalCharException.java ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MultiHashtable.java ObjectFactory.java StringStack.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/dom BitArray.java ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax ObjectFactory.java TemplatesImpl.java
    Committer's log entry: Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)

  • Committed by zongaro@apache.org on 2004/09/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Variable.java
    Committer's log entry: Skip translation for any unreferenced variables. Patch reviewed by Christine Li (jycli@ca.ibm.com).

  • Committed by zongaro@apache.org on 2004/11/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java
    Committer's log entry: Patch for bug report XALANJ-1994.
    The CallTemplate.getCalleeTemplate() method was searching through a Vector of all templates defined by the logical stylesheet, and picked out the first with the same name referenced by the current xsl:call-template instruction. However, that failed to account for import precedence. The SymbolTable.lookupTemplate method takes into account import precedence, and should be used instead.
    Patch was reviewed by Christine Li (jycli@ca.ibm.com)

  • Committed by santiagopg@apache.org on 2004/12/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java Operators.java
    Committer's log entry: Patch for XALANJ-2003. Problem was unrelated to recursion, but simply a bug in the basis library. Swapping operands requires swapping operators and the latter was not done. A workaround for this bug would be to swap the operands (and operator) in the stylesheet (as that would not cause any swapping in the basis library).

  • Committed by santiagopg@apache.org on 2004/12/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java
    Committer's log entry: Patch for XALANJ-2015. Namespace declarations are now reported on a first pass to avoid the problem described in the bug report.

  • Committed by santiagopg@apache.org on 2004/12/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java Parser.java SyntaxTreeNode.java
    Committer's log entry: Patch for XALANJ-1761. Output properties from multiple xsl:output instructions are now correctly merged (previously, only cdata-section-elements were handled correctly).

  • Committed by santiagopg@apache.org on 2004/12/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime Operators.java
    Committer's log entry: Replaced meaningless numbers by predefined constants in swapArray[] vector.

  • Committed by joannet@apache.org on 2004/12/13
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java
    Committer's log entry: Fixed XALANJ-1812. Template inlining setting propagated to imported stylesheets.

  • Committed by jycli@apache.org on 2005/02/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Number.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AnyNodeCounter.java MultipleNodeCounter.java NodeCounter.java SingleNodeCounter.java
    Committer's log entry: Implement Errata E24 for XSLTC, when the value attribute of xsl:number is NaN, infinite or less than 0.5. More details please refer to bug report XALANJ-1979. Patch is reviewed by Morris Kwan (mkwan@ca.ibm.com)

  • Committed by ytalwar@apache.org on 2005/02/09
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyImports.java Mode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ClassGenerator.java
    Committer's log entry: Fix for XALANJ-1417.

  • Committed by ytalwar@apache.org on 2005/02/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java TestSeq.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java
    Committer's log entry: Fix for XALANJ-2058. In the code, the problem is that a pattern gets compiled once, and then this compiled pattern gets re-used whenever the pattern is needed in any method. The fix is that pattern should get compiled once per method. So, pattern get reused only within a given method. for any new method, a pattern is recompiled. This fix has been reviewed by Henry Zongaro. Henry had also provided suggestions about the fix to resolve this issue. Thanks Henry for his valuable input.

  • Committed by mcnamara@apache.org on 2005/03/03
    Modified: xml-xalan/java/xdocs/sources/xalan readme.xml resources.xml xsltc_usage.xml xml-xalan/java/xdocs/sources/xsltc README.xslt README.xsltc
    Committer's log entry: Patch for XALANJ-1937. Change references in the docs from bugzilla to Apache Jira for reporting new issues and checking the status of existing issues.

  • Committed by ytalwar@apache.org on 2005/03/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Text.java
    Committer's log entry: This is a fix for XALANJ-2081. In class org.apache.xalan.xsltc.compiler.Text, a check was being done to find out if a given text string is all whitespaces. In case, a given text string is all whitespace, a call to serializer is not made. The code was using trim() method from java.lang.String. trim() method trimmed characters as whitespaces that are not considered as whitespace in XML. The code logic is changed to check if a given string is all whitespace accoding to XML specifications. I would like to thank Michael Glavassevich and Brian Minchau for their input to resolve this issue.

  • Committed by santiagopg@apache.org on 2005/04/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java
    Committer's log entry: Clear XML reader for the case in which them main stylesheet is passed using a DOMSource. This fixes the problem of trying to use a DOM2SAX reader for included/imported stylesheets that are resolved by user-defined URI resovers.

  • Committed by mkwan@apache.org on 2005/05/19
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Put in the missing Transformer.reset() implementation when doing the JAXP 1.3 integration.

  • Committed by mkwan@apache.org on 2005/05/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java TransformerImpl.java
    Committer's log entry: Support DOMResult.nextSibling in XSLTC. The nextSibling information is passed from TransformerImpl to TransletOutputHandlerFactory, then to SAX2DOM. If nextSibling is not null, SAX2DOM inserts the result nodes before it. Otherwise the result nodes are appended as the last children of the parent.

  • Committed by mkwan@apache.org on 2005/05/31
    Modified: xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java xml-xalan/java/src/org/apache/xalan/xsltc/trax SmartTransformerFactoryImpl.java TransformerFactoryImpl.java
    Committer's log entry: Patch for XALANJ-2123. Move hard-coded messages for JAXP 1.3 into resource bundles.

  • Committed by mkwan@apache.org on 2005/06/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java Parser.java TransletOutput.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java TrAXFilter.java Util.java
    Committer's log entry: Patch for XALANJ-2136. Implement the secure processing feature for XSLTC. Extension functions and extension elements are disabled when this feature is set to true.

  • Committed by zongaro@apache.org on 2005/06/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java
    Committer's log entry: Fix for XALANJ-1938.
    A KeyIndex object contains a Hashtable mappings from key values to the IntegerArray objects that contain the set of nodes selected by those key values. For a reference to the key function, the lookupKey method finds the nodes selected by a particular key value, and the merge method merges all the nodes selected if more than one key value is specified for the one refernce to the key function.
    The problem was that the lookupKey and merge methods operated on the "live" versions of the IntegerArrays stored in the mapping Hashtable, so that one reference to the key function might affect the result of subsequent references to the key function. Changed those methods to make clones of the selected IntegerArray objects, which can be safely modified without affecting the original IntegerArrays.
    This patch was reviewed by Joanne Tong (joannet@ca.ibm.com).

  • Committed by zongaro@apache.org on 2005/06/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java
    Committer's log entry: Patch for bug XALANJ-2097 from Nick Van den Bleeken. (Nick.VandenBleeken@pandora.be), reviewed by Henry Zongaro.
    The code generated for a path expression of the form $var/self::node() was incorrect. It looked like the following, where "i" refers to the context node.
    new StepIterator(dtmaxisiterator1.cloneIterator(), new SingletonIterator(i));
    That's incorrect, because the SingletonIterator will only return the node used upon its instantiation, rather than the node provided from the parent step expression by the StepIterator.
    The SingletonIterator should only be used if the self::node() is not a step in a path expression. In the case of a path expression, dom.getAxisIterator should be used to create the axis iterator instead.

  • Committed by zongaro@apache.org on 2005/06/30
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler AbsoluteLocationPath.java FilteredAbsoluteLocationPath.java FilterExpr.java FilterParentPath.java FunctionCall.java KeyCall.java ParentLocationPath.java Sort.java Step.java StepPattern.java
    Committer's log entry: Patch for XALANJ-2146. Reviewed by Christine Li (jycli@ca.ibm.com).
    Section 4.3.4 of the JVM specification prohibits an uninitialized object from appearing on the stack or in a local variable when a backwards branch is executed. We need to guard against that in the generated code in XSLTC by storing arguments to constructors in temporary variables if there's any possibility that the code used to calculate such arguments might contain a backwards branch.

  • Committed by jycli@apache.org on 2005/07/08
    Modified: xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java
    Committer's log entry: Added missing apostrophe for error messages. Fixed bug report XALANJ-2167. Patch is reviewed by Sarah McNamara (mcnamara@ca.ibm.com)

  • Committed by zongaro@apache.org on 2005/07/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java
    Committer's log entry: Fix for bug report XALANJ-2140.
    The AbstractTranslet._keyIndexes field is used to record the sets of keys for a particular transformation by name. This table was not cleared at the end of a transformation, so the keys from one transformation persisted to subsequent transformations. Fixed this by adding a try-finally block in the AbstractTranslet.transform method and setting _keyIndexes to null in the finally block.
    Reviewed by Brian Minchau (minchau@ca.ibm.com).

  • Committed by minchau@apache.org on 2005/07/13
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
    Committer's log entry: Minor change in the error message, fix was found by Brian Vargas, patch produced and reviewed by Brian Minchau.

  • Committed by minchau@apache.org on 2005/07/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java
    Committer's log entry: Fixing a NPE for when _locator is null in the XSLTC Parser. Applyin the patch in XALANJ-2154 from Brian Minchau, reiwed and approved by Santiago P.G.

  • Committed by mcnamara@apache.org on 2005/07/19
    Modified: xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java xml-xalan/java/src/org/apache/xml/serializer Version.src xml-xalan/java/xdocs/sources entities.src xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml downloads.xml extensions.xml extensionslib.xml faq.xml features.xml getstarted.xml index.xml overview.xml public_apis.xml resources.xml samples.xml trax.xml usagepatterns.xml whatsnew.xml xpath_apis.xml xsltc_usage.xml xml-xalan/java/xdocs/sources/xsltc README.xslt README.xsltc
    Committer's log entry: Doc changes for Xalan Java 2.7.0 release. This change was reviewed and approved in XALANJ-2170 by Christine Li.

  • Committed by mcnamara@apache.org on 2005/07/13
    Modified: java/src/org/apache/xalan/xsltc/compiler xpath.lex
    Committer's log entry: Patch for XALANJ-1912.
    Provided by Santiago Pericas-Geertsen
    Reviewed by Yash Talwar.


Changes for Xalan-Java 2.6.0
 

XSLTC source code updates:

  • Committed by santiagopg@apache.org on 2003/10/31
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java

    Committer's log entry: Use translet as whitespace filter if it implements the StripFilter interface (This class should probably be deprecated to avoid having to get it in sync with the Process class).

  • Committed by santiagopg@apache.org on 2003/10/31
    Modified: xml-xalan/java/src/org/apache/xalan/processor StylesheetPIHandler.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java

    Committer's log entry: Patch for Bugzilla 24187 by Bhakti Mehta (Bhakti.Mehta@sun.com).

  • Committed by santiagopg@apache.org on 2003/11/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java

    Committer's log entry: Patch for Bugzilla 24188 by Bhakti Mehta (Bhakti.Mehta@sun.com). The runtime now attempts to resolve a reference when the URI resolver returns null.

  • Committed by santiagopg@apache.org on 2003/11/05
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java

    Committer's log entry: Committing patch for Bugzilla 24414 by Bhakti Mehta (Bhakti.Mehta@sun.com).

  • Committed by santiagopg@apache.org on 2003/11/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Param.java ParameterRef.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java

    Committer's log entry: Patch for Bugzilla 24518 by Mehta Bhakti (Mehta.Bhakti@sun.com).

  • Committed by santiagopg@apache.org on 2003/11/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java Util.java

    Committer's log entry: Patch for Bugzilla 24695 by Bhakti Mehta (Bhakti.Mehta@sun.com).

  • Committed by santiagopg@apache.org on 2003/11/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java Util.java

    Committer's log entry: Updated patch for Bugzilla 24695 by Bhakti Metha. This patch gets an XMLReader from a SAXParserFactory if unable to obtain one from an XMLReaderFactory.

  • Committed by zongaro@apache.org on 2003/11/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Stylesheet.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java

    Committer's log entry: Patch from Morris Kwan (mkwan@ca.ibm.com), reviewed by myself:

    Split namesArray in translet into three arrays: namesArray, urisArray and typesArray.

    Previously, entries in the namesArray had to be examined at run-time to distinguish those that represented elements, from those that represented attributes (prefixed by an '@'), and those that represented namespace node names (prefixed by a '?'). In addition, any namespace URI for the element or attribute was similarly stored in the namesArray entry. So, "http://example.org:abc" and "http://example.org:@abc" respectively represented an element and an attribute named abc in the http://example.org namespace; "?abc" represented a namespace prefix of abc.

    With this change, the namesArray will have entries for "abc" in all three cases; the urisArray will contain entries for "http://example.org" for the element and attribute, and an empty string for the namespace prefix; and the typesArray will contain the value 1 for the element, 2 for the attribute and 13 for the namespace (which correspond to the DTM constant values for those kinds of nodes).

    In addition, these values are stored in static arrays in the translet, and references to those arrays are copied to instance fields in the translet's constructor, rather than constructing arrays and initializing all their entries in the constructor each time.

    All this serves to reduce the overhead of initializing a transformation.

    Patch from myself, reviewed by Morris Kwan:

    Introduced a versioning mechanism in AbstractTranslet. After constructing an object of a class that extends AbstractTranslet, the postInitialization method must be called. That method will detect any versioning differences that can be resolved automatically, if a translet was compiled with an older version of the XSLTC than is being used at run-time. The version number is stored in the translet's transletVersion field.

    In many cases, incompabilities run up against Java's binary compatibility rules, and fail catastrophically. This versioning mechanism is designed to detect those cases that can't be detected by the JVM. The first use of this mechanism is to translate from the old form of the namesArray used by old translets, to the new form expected by the modified version of the XSLTC run-time, as described above.

    In addition, if the translet version detected by the XSLTC run-time is more recent than any supported by the XSLTC run-time, an error will be reported.

  • Committed by zongaro@apache.org on 2003/11/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java

    Committer's log entry: Patch from myself, reviewed by Morris Kwan (mkwan@ca.ibm.com):

    Introduced a versioning mechanism in AbstractTranslet. After constructing an object of a class that extends AbstractTranslet, the postInitialization method must be called. That method will detect any versioning differences that can be resolved automatically, if a translet was compiled with an older version of the XSLTC than is being used at run-time. The version number is stored in the translet's transletVersion field.

    In many cases, incompabilities run up against Java's binary compatibility rules, and fail catastrophically. This versioning mechanism is designed to detect those cases that can't be detected by the JVM. The first use of this mechanism is to translate from the old form of the namesArray used by old translets, to the new form expected by the modified version of the XSLTC run-time, as described above.

    In addition, if the translet version detected by the XSLTC run-time is more recent than any supported by the XSLTC run-time, an error will be reported.

  • Committed by zongaro@apache.org on 2003/12/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOMEnhancedForDTM.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java DOMAdapter.java DOMWSFilter.java KeyIndex.java LoadDocument.java SAXImpl.java XSLTCDTMManager.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java

    Committer's log entry: Changes to permit different DTM implementations to be supplied to XSLTC.

    Part of the change was to replace hard-coded references to SAXImpl with references to a new interface - DOMEnhancedForDTM. This part of the change was supplied by Joseph Kesselman (keshlam@us.ibm.com).

    The other part of the change was to use ObjectFactory to look up a new XSLTC DTM Manager service provider (org.apache.xalan.xsltc.dom.XSLTCDTMManager). The provider is looked up once when a TransformerFactory is created, and used by any Transformer objects created by that TransformerFactory.

  • Committed by zongaro@apache.org on 2003/12/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java TransformerImpl.java

    Committer's log entry: Changes to permit different DTM implementations to be supplied to XSLTC.

    XSLTC will now use ObjectFactory to look up a new XSLTC DTM Manager service provider (org.apache.xalan.xsltc.dom.XSLTCDTMManager). The provider is looked up once when a TransformerFactory is created, and used by any Transformer objects created by that TransformerFactory.

    Also, moved code for caching XMLReader objects from XSLTC's TransformerFactoryImpl to a new org.apache.xml.utils.XMLReaderManager class.

    It is now the responsibility of the DTMManagerDefault class to request one of these cached XMLReader objects, so the benefit of reusing an XMLReader is now conferred upon both XSLTC and Xalan-J Interpretive, as well as upon references to the document() function.

  • Committed by zongaro@apache.org on 2003/12/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java

    Committer's log entry: Added comments to describe the situation in which this iterator is used.

  • Committed by santiagopg@apache.org on 2003/12/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java

    Committer's log entry: Creation of translet's class loader should be wrapped in a doPrivileged block (java.lang.RuntimePermission createClassLoader).

  • Committed by rameshm@apache.org on 2003/12/11
    Modified: xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util Util.java xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime Constants.java

    Committer's log entry: Adding explicit final keyword to the intended constants which are defined with public static keywords. This will avoid the problem of cross site java sandbox violation. In the case of xsltc/compiler/util/Util.java making the "filesep" variable to private to avoid the chance of somebody else changing the value of this static variable.

  • Committed by zongaro@apache.org on 2003/12/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java

    Committer's log entry: Take advantage of DTM pluggability support for XSLTC.

  • Committed by zongaro@apache.org on 2003/12/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: The getDOM method might be entered more than once during a transformation, so the DTMManager that is created the first time in must be saved so that subsequent DTM's can be created with respect to it, and then discarded at the end of the transformation.

    This change restores logic that I had foolishly eliminated with my previous change to this file.

  • Committed by santiagopg@apache.org on 2003/12/19
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java BooleanCall.java CastExpr.java CopyOf.java DocumentCall.java EqualityExpr.java Expression.java FilterExpr.java ForEach.java FunctionCall.java Key.java KeyCall.java NameBase.java NumberCall.java RelationalExpr.java StringCall.java VariableBase.java WithParam.java

    Committer's log entry: Patch for XSLTC's parameter optimization introduced in 2.5.2. The problem is that a param's default value can now be compiled multiple times, once for every call to the template for which that param is not specified. This essentially turns the AST into a graph, which requires the state of a param subtree to be reset after the each compilation. In particular, the variable Expression._startReset was not reset and this resulted in calls to setStartNode() to be generated only the first time the param's default value was compiled. After some analysis, I realized that _startReset was no longer necessary, so I removed it. I also renamed Expression.startResetIterator() to Expression.startIterator() since calls to reset() are no longer generated within this method.

  • Committed by santiagopg@apache.org on 2003/12/19
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Setting the maximum fraction digits on a DecimalFormat object to Integer.MAX_VALUE causes problems in some JDKs. Since only doubles need to be formatted, I've changed the code to set the maximum to 340. I've also optimized formatNumber(), the new version uses setters on the DecimalFormat object instead of calling toPattern().

  • Committed by santiagopg@apache.org on 2003/12/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util BooleanType.java IntType.java RealType.java ReferenceType.java StringType.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Type conversions from internal to external Java types revisited: (1) Type.Int and Type.Real are now treated identically given that the former is an optimization for the latter (i.e. their use should be transparent to the user) (2) Better support Type.Reference, conversions to integral types are now supported. There are still some conversions that are supported by Xalan and not by XSLTC. We need to either revisit the conversion table for XSLTC or document the differences.

  • Committed by santiagopg@apache.org on 2003/12/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java Param.java ParameterRef.java Template.java VariableBase.java WithParam.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NamedMethodGenerator.java

    Committer's log entry: The parameter optimization implemented in 2.5.2 does not work in all cases. The problem (see Bugzilla 25449) is that a param's default value needs to be compiled multiples when there are mulitple calls the a template none of which has a correspoding with-param. However, ASTs store an internal state which is not restored after compilation; consequently, only the first compilation is guaranteed to succeed. Stated differently, the AST cannot be operated as a graph because sub-tree sharing causes problems.

    The optimization has now been changed so that a param default value is compiled only once by the callee instead of multiple times by each caller. A caller will now pass 'null' when there is no with-param; a callee will only initialize a param if its value is 'null'. This ensures that default values are compiled exactly once while at the same time preserving the XSLT semantics.

  • Committed by zongaro@apache.org on 2004/01/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java

    Committer's log entry: SAXImpl.startDocument was calling SAX2DTM.startDocument followed by SAX2DTM.startPrefixMapping for the xml prefix. However, the SAX2DTM.startElement always ensures the xml prefix is declared for the first element. The effect of the startPrefixMapping call was to create two namespace nodes on the first element declaring the xml prefix. This had no discernible consequence, except to throw off the numbering of subsequent nodes with the generate-id() function.

    I've eliminated the redundant call to startPrefixMapping, and adjusted the gold test output files for the generate-id function.

    Reviewed by Christine Li (jycli@ca.ibm.com)

  • Committed by santiagopg@apache.org on 2004/01/13
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java

    Committer's log entry: Fix for Bugzilla 25924 by Bhakti Mehta (Bhakti.Mehta@sun.com). Variable _lastNext must be preserved in setMark() and restored in gotoMark().

  • Committed by santiagopg@apache.org on 2004/01/14
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java ForEach.java ForwardPositionExpr.java PositionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Committing a patch from Bhakti Mehta (Bhakti.Mehta@sun.com). ForwardPositionIterators and ForwardPositionExprs are not needed anymore after the intergration with DTM. Despite that, ForwardPositionIterators were still being used even though they did not provide any additional functionally (they were basically identity iterators). This patch eliminates the need for these iterators (and the corresponding compile-time expressions) and also replaces calls to BasisLibrary.positionF() with calls to currentIterator.getPosition(). The resulting code should be smaller and faster.

  • Committed by santiagopg@apache.org on 2004/01/14
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java
    Committer's log entry: Removing unused constant.

  • Committed by santiagopg@apache.org on 2004/01/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NodeSetType.java ResultTreeType.java

    Committer's log entry: XSLT->Java and Java->XSLT conversion table revisited. I made sure that two internal types corresponding to the same XSLT type had identical conversion rules (e.g. IntType and RealType). The multi-step conversions NodeSetType->int and ResultTreeType->double have been eliminated in order to simplify the table (they can always by implemented externally). The resulting conversion table is still not identical to the interpreter (and perhaps it will never be) so it should be documented separately.

  • Committed by jycli@apache.org on 2004/02/02
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java

    Committer's log entry: Fix for bugzilla bug report 23046. For included stylesheet, set the _numberFormattingUsed flag to true for its including stylesheet too.

    Reviewed by Henry Zongaro (zongaro@ca.ibm.com)

  • Committed by santiagopg@apache.org on 2004/02/05
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FilterExpr.java Predicate.java Step.java StepPattern.java

    Committer's log entry: Patch for Bugzilla 19194. I've made the following changes: (i) re-wrote Predicate.typeCheck() (ii) the predicate optimizations are turned off for FilterExpr, as they don't apply in all cases (iii) sync up Step, StepPattern and FilterExpr to accomodate the new changes. The interaction between these classes is non-trivial, and the code for some optimizations is brittle, to say the least. As part of this patch, I rolled back a patch to FilterExpr and fixed Bugzilla 25783 which wasn't really related despite what the bug report states. For the 2.0 work, it would be nice to place optimization code in separate classes so that it can be easily maintained and also easily deactivated via a command-line flag.

  • Committed by jycli@apache.org on 2004/02/10
    Modified: xml-xalan/java/src/org/apache/xpath/functions FuncRound.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler RoundCall.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Fix for bugzilla bug report 24111. The string values for both positive and nagative zero are 0. However, a number div 0 returns Infinity, a number div -0 returns -Infinity.

  • Committed by santiagopg@apache.org on 2004/02/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Predicate.java

    Committer's log entry: Fix for Bugzilla 24788. NodeValue optimization was too optimistic. Since the value in 'step = value' is not compiled in the predicate's context, it must be limited to expressions that are context independent, but this was not the case as the example in 24788 shows.

  • Committed by santiagopg@apache.org on 2004/02/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java

    Committer's log entry: Committing patch by Bhakti for XSLTC. If attributes are created without an explicit prefix, then NamespaceMappings.generateNextPrefix will be called to generate a prefix. Also if elements are created using createElementNS(null,localname) then they will be serialized properly without being in default namespace.

  • Committed by jycli@apache.org on 2004/02/13
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: A slightly faster implementation of round function.

  • Committed by jycli@apache.org on 2004/02/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Fix a bug introduced during optimizing for the previous code Should check for NaN cases.

  • Committed by minchau@apache.org on 2004/02/16
    Modified: Most files in the Xalan Java cvs repository (too many to list)

    Committer's log entry: New Apache 2.0 license update.

  • Committed by igorh@apache.org on 2004/02/19
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java

    Committer's log entry: Fix for Bugzilla Bugs 24793.

  • Committed by bhakti@apache.org on 2004/02/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java

    Committer's log entry: Fix for the bug in DOM2TO where there was a call to _handler.addAttribute which was moved to the if clause and hence attributes in no namespace were lost when using an identity transformation with DOMSource.

    Thanks to Henry Z. for pointing it out and Santiago for reviewing. I have tested it locally. Please let me know if you see any issues with this.

  • Committed by jycli@apache.org on 2004/02/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Fix for bugzilla bug report 26697 XSLTC supports convert a NodeList to an internal DOM iterator. Use setAttributeNS method to copy attribute node when an attribute has a prefix, which maps to a namespace URI

    Reviewed by Morris Kwan (mkwan@ca.ibm.com)

  • Committed by jycli@apache.org on 2004/02/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java

    Committer's log entry: Always use setAttributeNS() method and pass null as its namespace for non-namespaced nodes. Thanks Joe Kesselman for pointing it out.

  • Committed by aruny@apache.org on 2004/02/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java FunctionCall.java Param.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ReferenceType.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime CallFunction.java ObjectFactory.java SecuritySupport.java SecuritySupport12.java

    Committer's log entry: Description : Adding the basic functionality for resolving external function dynamically. If static resolution fails then Dynamic resolution is used as last resort.

  • Committed by igorh@apache.org on 2004/02/23
    Modified: xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java

    Committer's log entry: Patch for Bugzilla Bug 25368 submitted by Joanne Tong.

  • Committed by zongaro@apache.org on 2004/02/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java VariableBase.java WithParam.java

    Committer's log entry: Patch for Bugzilla bug reports 24988 and 25368 from Joanne Tong (joannet@ca.ibm.com) reviewed by myself.

    24988: Changes required to test whether an attribute value that is required to be a QName, NCName or whitespace-separated list of QNames actually meets that requirement.

    25368: Code was basing variable and parameter names on the local part of the name, rather than including the namespace URI in the name. This resulted in collisions in the generated code between distinct variables that had the same local-name.

  • Committed by zongaro@apache.org on 2004/02/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Number.java Predicate.java Sort.java Variable.java VariableRef.java

    Committer's log entry: Patch for Bugzilla bug report 25368 from Joanne Tong (joannet@ca.ibm.com) reviewed by myself.

    Code was basing variable and parameter names on the local part of the name, rather than including the namespace URI in the name. This resulted in collisions in the generated code between distinct variables that had the same local-name.

  • Committed by zongaro@apache.org on 2004/02/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java

    Committer's log entry: Part of fix for bug report 24985. The code that resulted for a NodeTest of the form "@p:*" or "attribute::p:*" was identical to that for "@*" - in other words, the prefix was not being tested. Fixed this so that DOM.getNamespaceAxisIterator is used to create the right kind of iterator.

    Reviewed by Morris Kwan (mkwan@ca.ibm.com).

  • Committed by zongaro@apache.org on 2004/02/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java

    Committer's log entry: Part of fix for bug reports 24985 and 24365.

    Moved the NamespaceChildrenIterator and NamespaceAttributeIterator classes into this class from SAX2DTM2, where they can use fields specific to SAXImpl to refer to namespace information.

    Also added a new NamespaceWildcardIterator that handles axes other than the child and attribute axes (which are handled by the specific iterators already mentioned).

    Reviewed by Morris Kwan (mkwan@ca.ibm.com).


Changes for Xalan-Java 2.5.2
 

XSLTC source code updates:

  • Committed by grchiu@apache.org on 2003/06/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Expression.java
    Committer's log entry: Fix for bugzilla 20685. In startResetIterator(), check see if the expression wrapped by the CastExpr is a VariableRef. If so, don't generate a call to setStartNode.

  • Committed by mkwan@apache.org on 2003/06/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java
    Committer's log entry: Fix a minor bug in MultiDOM.addDOMAdapter().

  • Committed by ilene@apache.org on 2003/06/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOMCache.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java LoadDocument.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Patch for bugzilla #15828. Arguments to URIResolver.resolve method for document function, in XSLTC are now href: argument passed to document function base: URI of stylesheet

  • Committed by ilene@apache.org on 2003/06/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: Putting back LoadDocument.java

  • Committed by ilene@apache.org on 2003/06/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: Patch for bugzilla #15828. Arguments to URIResolver.resolve method for document function, in XSLTC are now href: argument passed to document function base: URI of stylesheet

  • Committed by ilene@apache.org on 2003/06/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Putting back TransformerImpl

  • Committed by ilene@apache.org on 2003/06/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Patch for bugzilla #15828. Arguments to URIResolver.resolve method for document function, in XSLTC are now href: argument passed to document function base: URI of stylesheet

  • Committed by zongaro@apache.org on 2003/06/19
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java
    Committer's log entry: Added SAXTransformerFactory.FEATURE and SAXTransformerFactory.FEATURE_XMLFILTER to the list of features that are implemented. Fix for bug 20795.

  • Committed by mkwan@apache.org on 2003/06/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java MultiDOM.java SAXImpl.java SimpleResultTreeImpl.java
    Committer's log entry: Performance improvement for XSLTC Don't add a simple or adaptive RTF to the DTMManager if the nodeset extension is not used. The DOMAdapters are also not created in this case. This is a noticeable improvement for stylesheets that use many small RTFs but do not use the nodeset extension.

  • Committed by mkwan@apache.org on 2003/06/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java Mode.java Param.java Template.java WithParam.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NamedMethodGenerator.java
    Committer's log entry: Performance improvement for XSLTC New codegen solution for parameter passing in named templates, which provides significant improvement for stylesheets that use xsl:call-template and xsl:with-param heavily. The old solution generates code to call Translet.addParameter(), which seems to be too expensive. In the new solution, parameters are passed to named templates via method arguments. The method signature for a named template is not fixed. It depends on the number of parameters declared in the template. The caller (xsl:call-template) is responsible for generating the correct parameter list and passes it to the called template. This is done in the CallTemplate class, which finds out the corresponding called template and processes its own xsl:with-param children together with the xsl:params in the called template to generate an effective parameter list. In the case where a xsl:param references another xsl:param, local variables are generated to hold the temporary parameter value.

  • Committed by ilene@apache.org on 2003/06/23
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: Patch for bugzilla #15828.

  • Committed by mkwan@apache.org on 2003/06/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TrAXFilter.java
    Committer's log entry: Add a "public Transformer getTransformer()" method to XSLTC's TrAXFilter class. The Xalan TrAXFilter class already has such an interface.

  • Committed by mkwan@apache.org on 2003/06/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java XSLTCSource.java
    Committer's log entry: Fix for XSLTCSource (see bugzilla 21048).

  • Committed by mkwan@apache.org on 2003/06/24
    Modified: xml-xalan/java/xdocs/sources/xsltc xsltc_trax_api.xml
    Committer's log entry: Update documentation about how to use XSLTCSource.

  • Committed by mkwan@apache.org on 2003/06/25
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java VariableBase.java xml-xalan/java/src/org/apache/xalan/xsltc/dom CachedNodeListIterator.java ClonedNodeListIterator.java
    Committer's log entry: Performance improvement for XSLTC Introduce two new iterators (CachedNodeListIterator and CloneNodeListIterator). They are used by variable/param references that are evaluated to nodesets. CachedNodeListIterator traverses the underlying iterator once and caches the nodes in an IntegerArray. Its clone() method returns an object of CloneNodeListIterator, which also retrieves nodes from the cache. This mostly improves the case where a variable is referenced multiple times in a context. In the old code, the iterator for the variable is traversed as many times as the variable is referenced. Using the cached iterators, the iterator is only traversed once. All later references retrieve nodes from the cache.

  • Committed by mkwan@apache.org on 2003/06/25
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java MultiDOM.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
    Committer's log entry: Implement a feature to cache the DTM for the stylesheet in the Templates object. This improves the case where document('') is used. In this case the DTM for the stylesheet is only built once per thread. It can be reused by multiple transformers created by the sample Templates.

  • Committed by grchiu@apache.org on 2003/06/26
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom UnionIterator.java
    Committer's log entry: Patch from Christine Li (jycli@ca.ibm.com) for bugzilla 20913, with modifications. In UnionIterator, after calling the getLast() method, the heap is not restored properly. Recreate the heap in gotoMark(), as well as restore _returnedLast and _heapSize.

  • Committed by ilene@apache.org on 2003/06/30
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java
    Committer's log entry: Put back DocumentCache

  • Committed by ilene@apache.org on 2003/06/30
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc DOMCache.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java
    Committer's log entry: Update the DocumentCache class to be compatible with the DOMCache interface. Although, with the native interface no longer supported, users should not be using the DocumentCache. Instead they should set a URIResolver on the Transformer in order to resolve arguments passed to the document function.

  • Committed by ilene@apache.org on 2003/06/30
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: Fix for 3 trax.localPath failures.

  • Committed by mkwan@apache.org on 2003/07/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Fix a memory leak problem with the DTMManager.

  • Committed by mkwan@apache.org on 2003/07/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java Stylesheet.java Template.java
    Committer's log entry: Fix a few conformance regressions introduced by the addParameter optimization work.

  • Committed by mkwan@apache.org on 2003/07/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java
    Committer's log entry: Fix for bugzilla 20074. Don't create an IntegerArray of size 0.

  • Committed by ilene@apache.org on 2003/07/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java
    Committer's log entry: XSLTC: TransformerHandler.setResult should throw an IllegalArgumentException when the result argument is null.

  • Committed by mkwan@apache.org on 2003/07/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java
    Committer's log entry: Fix for bug 20256. Remove an unused reference to an inexistent class.

  • Committed by ilene@apache.org on 2003/07/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java
    Committer's log entry: Patch for bugzilla #20537. When URIResolver was set for includes/imports, the system id of the included/imported files was not always set correctly.

  • Committed by zongaro@apache.org on 2003/07/22
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Predicate.java
    Committer's log entry: Applying patch from Igor Hersht (igorh@ca.ibm.com) for Bugzilla bug 18821. At some point in the recent past, Predicate started trying to optimize filter expressions with positional predicates, but the receiving code in FilterExpr was always incorrect. The fixes to FilterExpr and related code aren't so straightforward, so the easiest thing to do for now is to disable the broken optimization for FilterExpr objects.

  • Committed by zongaro@apache.org on 2003/07/22
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom UnionIterator.java
    Committer's log entry: Applying patch from Igor Hersht (igorh@ca.ibm.com) for Bugzilla bug 18821. Nested iterators in UnionIterator weren't correctly handling multiple calls to setStartNode in generated code. Fixed by ignoring calls after the first.

  • Committed by mkwan@apache.org on 2003/07/25
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
    Committer's log entry: Fix for bugzilla 20832. Also fix testcase attribset19.

  • Committed by mkwan@apache.org on 2003/07/25
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: Fix for bugzilla 21805.

  • Committed by zongaro@apache.org on 2003/08/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: Added code to create static char[] fields in the translet containing the literal text in the source stylesheet. The code generation for xsl:comment and for literal text that constructs text nodes takes advantage of this by using the serializer's comment(char[],int,int) and characters(char[],int,int) methods, respectively, rather than the comment(String) and characters(String) methods. The former pair of methods avoid some potential overhead in the serializer from copying the contents of strings to char[] objects. Code that creates a static initializer method in a translet was written by Morris Kwan (mkwan@ca.ibm.com). Reviewed by Morris Kwan (mkwan@ca.ibm.com)

  • Committed by zongaro@apache.org on 2003/08/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Comment.java Constants.java Text.java XSLTC.java
    Committer's log entry: Added code to create static char[] fields in the translet containing the literal text in the source stylesheet. The code generation for xsl:comment and for literal text that constructs text nodes takes advantage of this by using the serializer's comment(char[],int,int) and characters(char[],int,int) methods, respectively, rather than the comment(String) and characters(String) methods. The former pair of methods avoid some potential overhead in the serializer from copying the contents of strings to char[] objects. Reviewed by Morris Kwan (mkwan@ca.ibm.com)

  • Committed by grchiu@apache.org on 2003/08/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java
    Committer's log entry: Patch from Bruno Dumon (bruno@outerthought.org) for bugzilla 20114. When using XSLTC's TemplatesHandler to create templates, errors are never reported; getTemplates() just returns null. Changed behaviour to be inline with Xalan behaviour: stylesheets are compiled in the endDocument() event and a SAXException wrapping the real exception is thrown.

  • \
  • Committed by igorh@apache.org on 2003/08/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeSet.java Constants.java UseAttributeSets.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util AttributeSetMethodGenerator.java
    Committer's log entry: Patch for Bugzilla Bug 19918

  • Committed by mkwan@apache.org on 2003/08/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java
    Committer's log entry: Fix bytecode generation problem for extension method calls via interfaces for bugzilla 22115.

  • Committed by minchau@apache.org on 2003/08/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
    Committer's log entry: PR: bugzilla 19972 Submitted by: William Lee (william.lee@cognos.com) Reviewed by: Brian Minchau and Gordon Chui The code loops over elements in a Vector, incrementing the index j. Some elements should not be processed so they were removed from the Vector. The removal of element "j" shifted all higher elements down and made the Vector 1 shorter. So removal of an element and incrementing "j" actually caused elements to be skipped. It is not quite clear why the element is being removed from the Vector rather than just skipped over. For safety sake an iteration over the loop either removes an element, or increments "j", but not both in the same iteration.

  • Committed by zongaro@apache.org on 2003/08/27
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: Applying patch for bug 19973 from Christine Li (jycli@ca.ibm.com). A call to buildKeys (for xsl:key) should be generated before a call to topLevel (to handle top-level variable and parameter declarations) because top-level variables and parameters can contain references to the key() function, but not the other way around.

  • Committed by zongaro@apache.org on 2003/09/05
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler VariableRefBase.java
    Committer's log entry: Applied patch for bug 22769 from Christine Li (jycli@ca.ibm.com). If a variable reference occurs inside the definition of another variable, XSLTC adds a dependency link upon the referenced variable to the defined variable. However, if the referenced variable was overrode by another variable definition with higher import precendence, the dependency should be placed on the overriding variable instead.

  • Committed by santiagopg@apache.org on 2003/09/09
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java
    Committer's log entry: Moved return statements outside of finally block. The compiler correctly points out that when an exception is not caught by a catch, the finally block cannot return normally.

  • Committed by santiagopg@apache.org on 2003/10/03
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java
    Committer's log entry: Ensure we set a non-empty name for the translet even when one cannot be obtained from the systemId.

  • Committed by santiagopg@apache.org on 2003/10/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java
    Committer's log entry: Fixed problem in XSLT parameter optimization. The search for the template being called should start from the top-level stylesheet. The incorrect signature was generated when xsl:template and xsl:call-template were located in different stylesheets.

  • Committed by santiagopg@apache.org on 2003/10/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: (Committing this again to get the log message right! - c.f. revision 1.54) 1. Added Javadoc comments to instance variables. 2. getAllValidTemplates() now caches result in top-level stylesheet. 3. setSystemId() maps a file system path to a URI (if needed).

  • Committed by santiagopg@apache.org on 2003/10/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java
    Committer's log entry: 1. New code to map relative paths to URIs in Include.java and Import.java. 2. If SourceLoader returns null, the JAXP API states that the processor should attempt to resolve the reference. Changed the logic to do this. (1 and 2 should solve some of the problems we have resolving relative paths and also using URI resolvers. More testing is needed, though).

  • Committed by santiagopg@apache.org on 2003/10/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastCall.java Parser.java xpath.cup
    Committer's log entry: Adding a new extension function for XSLTC. Using this extension function, it is possible to recover type information lost by the use of xsl:param (see Bugzilla 19038). Here is an example: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xalan/java" xmlns:xsltc="http://xml.apache.org/xalan/xsltc"> <xsl:param name="object"/> <xsl:template match="/"> <xsl:value-of select="java:length(xsltc:cast('java.lang.String', $object))"/> </xsl:template> </xsl:stylesheet> Without using xsltc:cast(), XSLTC will report an error as the type of param 'object' cannot be determined statically. The type of xsltc:cast() is: object[T] cast('T', reference | object[R]) where 'T' indicates that the type of the first argument must be a literal string. A ClassCastException may be thrown at runtime if R is not convertible to T. I believe we still need a fully-dynamic solution that does not rely on this extension function. However, the two solutions can coexists, especially since using xsltc:cast() will always be more efficient than any alternative based on Java reflection.

  • Committed by igorh@apache.org on 2003/10/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java SAXImpl.java
    Committer's log entry: Patch for Bugzilla Bug 14607

  • Committed by mkwan@apache.org on 2003/10/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java
    Committer's log entry: Fix the makeNode and makeNodeList methods in SAXImpl for bugzilla 23115.

  • Committed by mkwan@apache.org on 2003/10/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Sort.java
    Committer's log entry: Apply the patch for bugzilla 23271 from Bruno Fernandez-Ruiz (brunofr@olympum.com).

  • Committed by minchau@apache.org on 2003/10/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: PR: bugzilla 15901 Submitted by: Brian Minchau Reviewed by: John Meyer (bug reporter) XSLTC now uses properties from the serializer's factory rather than setting its own defaults. This makes XSLTC's default serialializer properties (indentation, entity file ... ) the same as Xalan-J.

  • Committed by minchau@apache.org on 2003/10/15
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler BinOpExpr.java LogicalExpr.java Predicate.java RelationalExpr.java UnaryOpExpr.java
    Committer's log entry: PR: bugzilla 15327 Submitted by: Christine Li Reviewed by: Brian Minchau Fix for XSLTC problems with [last()] and [last()-1] predicates.

  • Committed by santiagopg@apache.org on 2003/10/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java Stylesheet.java xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java
    Committer's log entry: Replace ad-hoc code to resolve relative URIs by calls to the xml.utils.SystemIDResolver class. This change fixes a few a regressions and also simplifies the code in XSLTC.

  • Committed by santiagopg@apache.org on 2003/10/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastCall.java CastExpr.java FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java StringType.java Type.java
    Committer's log entry: Allow conversion between types 'string' and 'object[java.lang.String]'. Conversion is trivial as instances of both types have the same runtime representation. This was needed in order to write expressions such as, string:new(xsltc:cast('java.lang.String', $object)) where 'object' is a param bound to a value of type 'java.lang.String'.

  • Committed by zongaro@apache.org on 2003/10/20
    Modified: xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Patch from Christine Li (jycli@ca.ibm.com) for Bugzilla bug report 22167. When the zero-argument constructor of DOMSource, StreamSource or SAXSource is invoked, and no setter method is called to specify an actual source, the source should be treated as if it contained only a root node.

  • Committed by santiagopg@apache.org on 2003/10/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java
    Committer's log entry: Check for null before setting DTM base URI.

  • Committed by santiagopg@apache.org on 2003/10/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java
    Committer's log entry: Fix for regression in Resolve002 TCK.

  • Committed by mkwan@apache.org on 2003/10/22
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java UnsupportedElement.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages.java
    Committer's log entry: Apply Joanne Tong (joannet@ca.ibm.com) patch for bugzilla 23706, with my own modifications. I also fixed bug 23896 in the same patch. This patch includes the fixes for the following: 1. an unsupported XSL element will trigger a syntax error in 1.0 mode. 2. In forward-compatibility mode, if an unsupported XSL element is in a template, has no fallback, it will trigger a runtime error if it is instantiated. 3. All fallback children are called in sequence. The old code only makes use of the first fallback child. 4. Only direct fallback children are processed. The old code finds the fallback from all descendants of an unsupported element, which is wrong behavior according to the spec.

  • Committed by santiagopg@apache.org on 2003/10/22
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
    Committer's log entry: Committing path for bugzilla 22438 from Bhakti Mehta (Bhakti.Mehta@sun.com). This patch fixes serialization problems of Templates objects in XSLTC. A user-defined URIResolver associated to a Templates object is also serialized whenever possible (i.e. if it is also serializable).


Changes for Xalan-Java 2.5.1
 

XSLTC source code updates:

  • Committed by zongaro@apache.org on 2003/04/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler DocumentCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: Applying patches from Igor Hersht (igorh@ca.ibm.com) for bug 15200 and bug 18585. Fixed up code that processes the document function when it has two arguments, the second of which must be a node-set; the code didn't always resolve the value of the first argument against the first node in the second argument, as it should have. In addition, in order to simplify run-time processing, added a new LoadDocument.documentF method that is used when the second argument to the XSLT document function is present; if that argument is an empty node-set, the result of the document function should be an empty node-set, and that logic is much easier to code in the run-time than via generated code.

  • Committed by santiagopg@apache.org on 2003/04/16
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java
    Committer's log entry: Set SourceLocator in stylesheet instead of XSLTC object. This ensures proper use of user-defined URIResolvers in a TemplatesHandler.

  • Committed by santiagopg@apache.org on 2003/04/24
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java
    Committer's log entry: Output properties were not properly cleared when reusing the same instance of a TemplatesHandlerImpl. The top-level stylesheet in the XSLTC object referenced by TemplatesHandlerImpl (indirectly via an instance of Parser) was not reset after the first use of the instance.

  • Committed by mkwan@apache.org on 2003/05/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java TransformerFactoryImpl.java
    Committer's log entry: Fix a multithread safety issue in the use-classpath option. The old code reuses a Translet object for all newTransformer() calls, which is not the right thing to do. We should pass in a Class array and let TemplateImpl create a new Translet instance for each newTransformer() call.


Changes for Xalan-Java 2.5.0
 

XSLTC source code updates:

  • Committed by santiagopg@apache.org on 2003/02/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Message.java
    Committer's log entry: New implementation of xsl:message that does not use RTFs. Using RTFs is both slow and problematic since the number of RTFs that can be created is limited in XSLTC. The new implementation uses a StreamXMLOutput and a StringWriter to output the template body as a string (in some cases, NS declarations will be included and this behavior differs from the old implementation). Additionally, the new implementation optimizes the case where the message is empty and where the message is just a literal string. The bug was reported by Mark Brunkhart (mark@matchanalysis.com).

  • Committed by santiagopg@apache.org on 2003/02/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMImpl.java MultiDOM.java
    Committer's log entry: Removed the getTreeString() method from the DOM interface (as well as from all the classes that implement this interface). This update will require a sync with the XSLTC_DTM branch, but there was no point in keeping this method when it's no longer used.

  • Committed by santiagopg@apache.org on 2003/02/26
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ReferenceType.java
    Committer's log entry: Fix for Bugzilla 17447. Conversion from reference type to string type assumed the existence of the "current" local variable, which is unavailable at top-level.

  • Committed by mkwan@apache.org on 2003/02/26
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java
    Committer's log entry: XSLTC_DTM performance work Improvement for xsl:copy-of. Instead of using the expensive getFirstAttribute() and getFirstNamespace() interfaces, increase the element id by 1 to iterate through all attribute and namespace nodes.

  • Committed by mkwan@apache.org on 2003/02/27
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java
    Committer's log entry: XSLTC_DTM performance work Minor cleanup to SAXImpl.copy() and copyElement(). Introduce a new interface handleTextEvents() to handle Text nodes more efficiently.

  • Committed by mkwan@apache.org on 2003/03/05
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ResultTreeType.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMImpl.java MultiDOM.java SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax XSLTCSource.java
    Committer's log entry: XSLTC_DTM performance work Design a new DOM model (SimpleResultTreeImpl) for simple result tree fragment (RTF). A simple RTF is an RTF which has only one Text node. It can be generated by a combination of Text, xsl:value-of and xsl:number instructions. It can also be generated by xsl:if or xsl:choose, as far as the content of the control body is pure Text. The code to detect whether an RTF is simple is in SyntaxTreeNode.isSimpleRTF(). Before this change, an RTF is represented by a SAXImpl object. SAXImpl is a heavy-weight class in that it allocates a lot of array objects for storage. In the case where the RTF is only one Text node, creating a SAXImpl is just too expensive. A SimpleResultTreeImpl has only two nodes, i.e. the root node and the Text node. All DOM interfaces are overridden to handle this simplified model. SimpleResultTreeImpl has a few internal iterators, which is designed to support the nodeset() extension function. This change brings a significant improvement to stylesheets that create a lot of simple RTFs. Some testcases are more than 100% faster after the change.

  • Committed by mkwan@apache.org on 2003/03/05
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SimpleResultTreeImpl.java
    Committer's log entry: Add a new class SimpleResultTreeImpl as the model for simple RTF.

  • Committed by mkwan@apache.org on 2003/03/06
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java NodeSortRecord.java SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamXMLOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java
    Committer's log entry: XSLTC_DTM performance work A few small improvements. More space efficient version of IntegerArray.clone(). Rearrange the condition checking in StreamXML(HTML)Output.escapeCharacters(). Only create one default Collator instance in NodeSortRecord.

  • Committed by mkwan@apache.org on 2003/03/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java SAXImpl.java
    Committer's log entry: XSLTC_DTM performance work Small tweaks in DOMAdapter. Invoking a final method is generally faster than invoking a method via interface.

  • Committed by mkwan@apache.org on 2003/03/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java
    Committer's log entry: XSLTC_DTM performance work Improvement in StreamOutput.escapeString(). Do not create the StringBuffer if there is nothing to escape. This change needs to be put back to the new serializer if it uses the same code.

  • Committed by mkwan@apache.org on 2003/03/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime StringValueHandler.java
    Committer's log entry: XSLTC_DTM performance work Use a more sophisticated algorithm in StringValueHandler. Do not create new Strings if there is only String value. Creating many new Strings is an expensive operation.

  • Committed by mkwan@apache.org on 2003/03/10
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java
    Committer's log entry: Fix a bug that causes id function testcases to fail in trax.sax flavor.

  • Committed by mkwan@apache.org on 2003/03/11
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java
    Committer's log entry: XSLTC_DTM performance work Set the namespace feature directly on the XMLReader. SAXParserFactory.setFeature() actually creates a temporary SAXParser to verify that feature. So we end up creating two SAXParsers per document() call in the old code.

  • Committed by mkwan@apache.org on 2003/03/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java
    Committer's log entry: file AdaptiveResultTreeImpl.java was initially added on branch XSLTC_DTM.

  • Committed by mkwan@apache.org on 2003/03/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java DOMAdapter.java DOMImpl.java MultiDOM.java SAXImpl.java SimpleResultTreeImpl.java
    Committer's log entry: XSLTC_DTM performance work Design a light-weight DOM model (AdaptiveResultTreeImpl) for RTFs with xsl:call-template. AdaptiveResultTreeImpl is a adaptive DOM model for result tree fragments (RTF). It is used in the case where the RTF is likely to be pure text yet it can still be a DOM tree. It is designed for RTFs which have <xsl:call-template> or <xsl:apply-templates> in the contents. Example: <xsl:variable name = "x"> <xsl:call-template name = "test"> <xsl:with-param name="a" select="."/> </xsl:call-template> </xsl:variable> In this example the result produced by <xsl:call-template> is likely to be a single Text node. But it can also be a DOM tree. This kind of RTF cannot be modelled by SimpleResultTreeImpl. AdaptiveResultTreeImpl can be considered as a smart switcher between SimpleResultTreeImpl and SAXImpl. It treats the RTF as simple Text and uses the SimpleResultTreeImpl model at the beginning. However, if it receives a call which indicates that this is a DOM tree (e.g. startElement), it will automatically transform itself into a wrapper around a SAXImpl. In this way we can have a light-weight model when the result only contains simple text, while at the same time it still works when the RTF is a DOM tree. All methods in this class are overridden to delegate the action to the wrapped SAXImpl object if it is non-null, or delegate the action to the SimpleResultTreeImpl if there is no wrapped SAXImpl.

  • Committed by mkwan@apache.org on 2003/03/12
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java
    Committer's log entry: XSLTC_DTM performance work Save the DTMManager in a field in MultiDOM. Don't compute it everytime in MultiDOM.getDTMId().

  • Committed by mkwan@apache.org on 2003/03/13
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime StringValueHandler.java
    Committer's log entry: Fix a bug which causes the docbook testcase to fail.

  • Committed by mkwan@apache.org on 2003/03/14
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java
    Committer's log entry: XSLTC_DTM performance work Improvement in MultiDOM. Make the nodeHandle to DOMAdapter mapping a straight map. The code in getDTMId() is much light-weight than before, because the complicated stuff is moved to addDOMAdapter() which is only called once per DTM. In the case where the DTM id runs across several addressing range (the size of each range is 65536 - an unusal case), there will be several items in the adapter array for one DTM.

  • Committed by zongaro@apache.org on 2003/03/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ProcessingInstructionPattern.java
    Committer's log entry: Applying patch for bug 15332 from Igor Hersht (igorh@ca.ibm.com). Ensure that patterns of the form processing-instruction() and processing-instruction('name') are given the right priorities.

  • Committed by zongaro@apache.org on 2003/03/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ProcessingInstructionPattern.java
    Committer's log entry: Applying patch for bug 15332 from Igor Hersht (igorh@ca.ibm.com). Ensure that patterns of the form processing-instruction() and processing-instruction('name') are given the right priorities.

  • Committed by zongaro@apache.org on 2003/03/17
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler ProcessingInstructionPattern.java
    Committer's log entry: Applying patch for bug 15332 from Igor Hersht (igorh@ca.ibm.com). Ensure that patterns of the form processing-instruction() and processing-instruction('name') are given the right priorities.

  • Committed by mkwan@apache.org on 2003/03/18
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMWSFilter.java KeyIndex.java LoadDocument.java SAXImpl.java XSLTCDTMManager.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java TransformerImpl.java
    Committer's log entry: XSLTC_DTM performance work New solution for DOM input. Use SAXImpl + DOM2SAX to handle DOM input. This is the solution used in the old XSLTC. The DOMImpl class is completely deprecated. This solution is better than DOMImpl on top of DOM2DTM for the following reasons: 1. DOM2DTM is known to be slow. 2. DOM2DTM is an incremental model while DOMImpl is not. 3. There are too much code duplication between DOMImpl and SAXImpl Under the new solution, any improvement to SAXImpl and SAX2DTM2 will also benefit the DOM case. There is no need to have separate optimizations for the DOM case. This solution is a little sophisticated than the old XSLTC solution in that we borrow some code from DOM2DTM (e.g. handling for id function and unparsed entity). The end result is that conformance in trax.dom is better than the old XSLTC.

  • Committed by santiagopg@apache.org on 2003/03/18
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util VoidType.java
    Committer's log entry: Override definition of Type.POP() in VoidType to return NOP instead of POP. If type is void, there's nothing to be popped. This problem shows up when invoking an external Java function whose return type is void.

  • Committed by zongaro@apache.org on 2003/03/19
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java Parser.java SyntaxTreeNode.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages_no.java ErrorMessages.java ErrorMsg.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages_no.java ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java
    Committer's log entry: Changed XSLTC messages to extend ListResourceBundle, and use String keys to access messages. Code used to extend ResourceBundle and used to use integer indices to access error messages. Changes from myself and Gordon Chiu (grchiu@uwaterloo.ca).

  • Committed by zongaro@apache.org on 2003/03/20
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java Parser.java SyntaxTreeNode.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages_no.java ErrorMessages.java ErrorMsg.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages_no.java ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java
    Committer's log entry: Changed XSLTC messages to extend ListResourceBundle, and use String keys to access messages. Code used to extend ResourceBundle and used to use integer indices to access error messages. Changes from myself and Gordon Chiu (grchiu@uwaterloo.ca).

  • Committed by zongaro@apache.org on 2003/03/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java DecimalFormatting.java Constants.java DecimalFormatting.java
    Committer's log entry: The generated code for xsl:decimal-format used the no argument constructor of DecimalFormatSymbols, which is affected by the default locale. The default attribute values for xsl:decimal-format should not be affected by the default locale. Instead, the en_US Locale should be passed to the constructor, as it has settings that are consistent with the defaults for xsl:decimal-format.

  • Committed by zongaro@apache.org on 2003/03/21
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java DecimalFormatting.java
    Committer's log entry: The generated code for xsl:decimal-format used the no argument constructor of DecimalFormatSymbols, which is affected by the default locale. The default attribute values for xsl:decimal-format should not be affected by the default locale. Instead, the en_US Locale should be passed to the constructor, as it has settings that are consistent with the defaults for xsl:decimal-format.

  • Committed by santiagopg@apache.org on 2003/03/25
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler XslAttribute.java
    Committer's log entry: Fix for Bugzilla 18162. Warnings are still reported if an occurrence of xsl:attribute *may* result in a runtime error.

  • Committed by santiagopg@apache.org on 2003/03/26
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
    Committer's log entry: Committing patch by Arun Yadav (Arun.Yadav@sun.com) that fixes the problem of using "." or "-" as part of the name of a parameter (Bugzilla 15636).

  • Committed by santiagopg@apache.org on 2003/03/26
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler KeyCall.java
    Committer's log entry: Committing patch from Arun Yadav (arun.yadav@sun.com) for Bugzilla 15830. Correct handling for id()/key() values of type result-tree.

  • Committed by santiagopg@apache.org on 2003/03/31
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TransformerFactoryImpl.java
    Committer's log entry: New implementation for TemplatesHandlerImpl that does not extend xsltc.compiler.Parser. The new implementation has a simpler init() method. Also, instances of the new class can be re-used (previously, there were problems with the output method when an instance was used more than once).

  • Committed by mkwan@apache.org on 2003/03/31
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax SmartTransformerFactoryImpl.java
    Committer's log entry: Remove XSLTC's compile time dependency on Xalan.

  • Committed by santiagopg@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TransformerFactoryImpl.java
    Committer's log entry: New implementation of TemplatesHandlerImpl. Fixes output method problem when reusing TemplatesHandler instances.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.cmdline.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc DOM.java DOMCache.java NodeIterator.java Translet.java TransletOutputHandler.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc. 1. Remove TransletOutputHandler.java 2. Adapt the XSLTC interfaces to the DTM model.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.util.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler AbsolutePathPattern.java AncestorPattern.java CastExpr.java Constants.java CopyOf.java DocumentCall.java ForEach.java GenerateIdCall.java IdKeyPattern.java Key.java KeyCall.java Message.java Mode.java NameBase.java NodeTest.java Output.java ParentLocationPath.java Predicate.java ProcessingInstructionPattern.java Step.java StepPattern.java Stylesheet.java SyntaxTreeNode.java UnionPathExpr.java UnparsedEntityUriCall.java ValueOf.java xpath.cup XSLTC.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.compiler.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java NodeSetType.java ObjectType.java ReferenceType.java ResultTreeType.java TypeCheckError.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.compiler.util.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java DOM2TO.java SAX2TO.java TemplatesHandlerImpl.java TransformerHandlerImpl.java TransformerImpl.java XSLTCSource.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.trax.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXHTMLOutput.java SAXOutput.java SAXTextOutput.java SAXXMLOutput.java StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java StreamUnknownOutput.java StreamXMLOutput.java TransletOutputHandlerFactory.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.runtime.output Remove the output classes in XSLTC. XSLTC now uses the output classes in the common serializer.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java AttributeList.java BasisLibrary.java Constants.java DefaultSAXOutputHandler.java SAXAdapter.java StringValueHandler.java TextOutput.java TransletOutputBase.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Changes in org.apache.xalan.xsltc.runtime.

  • Committed by mkwan@apache.org on 2003/04/01
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java AdaptiveResultTreeImpl.java AnyNodeCounter.java Axis.java BitArray.java CollatorFactoryBase.java CurrentNodeListFilter.java CurrentNodeListIterator.java DocumentCache.java DOMAdapter.java DOMBuilder.java DOMImpl.java DOMWSFilter.java DTDMonitor.java DupFilterIterator.java EmptyFilter.java ExtendedSAX.java Filter.java FilteredStepIterator.java FilterIterator.java ForwardPositionIterator.java KeyIndex.java LoadDocument.java MatchingIterator.java MultiDOM.java MultipleNodeCounter.java NodeCounter.java NodeIteratorBase.java NodeSortRecord.java NodeSortRecordFactory.java NthIterator.java SAXImpl.java SimpleResultTreeImpl.java SingleNodeCounter.java SingletonIterator.java SortingIterator.java StepIterator.java StripWhitespaceFilter.java UnionIterator.java XSLTCDTMManager.java
    Committer's log entry: Merging XSLTC_DTM and common serializer to the head Adapt all dom classes in org.apache.xalan.xsltc.dom to the DTM model. Removed DOMImpl, DTDMonitor. Added a few new classes for the new DOM model. The core DOM class is SAXImpl.

  • Committed by ilene@apache.org on 2003/04/02
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java
    Committer's log entry: If there is an error listener registered to a TransformerFactory, and the stylesheet cannot be compiled, call fatalError, in addition to throwing the TransformerConfigurationException.

  • Committed by mkwan@apache.org on 2003/04/04
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime StringValueHandler.java
    Committer's log entry: According to spec http://www.w3.org/1999/11/REC-xslt-19991116-errata/#E27, when element nodes are used in the instantiated content of attribute, comment and processing instructions, we should ignore the elements together with their content.

  • Committed by mkwan@apache.org on 2003/04/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java
    Committer's log entry: Need to override more startElement and endElement interfaces in AdaptiveResultTreeImpl, because it now extends EmptySerializer, which has a few more interfaces than the old TransletOutputHandler.

  • Committed by mkwan@apache.org on 2003/04/07
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java SAXImpl.java
    Committer's log entry: Fix for a few testcase failures in XSLTC trax.localPath. Detect the backslash ("\") character in the path in addtional to the forward slash ('/') in LoadDocument.document(). The XSLTC conformance result in trax.localPath changed from Pass: 1634/Fail: 14/Errr: 35 to Pass: 1657/Fail: 17/Errr: 9 after this change.

  • Committed by mkwan@apache.org on 2003/04/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: Fix for bugzilla 17448. Stylesheet.setIncludingStylesheet() should use _includedFrom instead of _importedFrom.

  • Committed by mkwan@apache.org on 2003/04/08
    Modified: xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
    Committer's log entry: Fix another problem related to bug 17448. Only set the import preceden