|
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.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
|
|