Morris Kwan wrote:
Credits:
Henry Zongaro & Morris Kwan: Leading developers in DTM integration and performance improvement Brian Minchau: Leading developer in the common serializer design and implementation Igor Hersht: XSLTC conformance bug fixes and performance run Myriam Midy: Initial infrastructure work on XSLTC_DTM
I checked out the XSLTC_DTM branch to test it on our XSL framework, congratulations for your great work at improving Xalan/XSLTC performance !
Comments or concerns are welcomed.
I had some failures on transformation with XSLTC_DTM, but didn't have time to investigate those, will submit bug entries as soon as I can isolate a test case.
The main issue I had to deal with was with the DocumentCache that instantiates a new instance of XSLTCDTMManager at each document retrieve call. This makes the MultiDOM fail as the index is always 1 and each document replaces the previous one.
I also noticed that the main Document is added twice in MultiDOM, at index 0 and 1, is there a reason for this ?
I patched DocumentCache to solve this (I also changed the REFRESH_INTERVAL for other reasons) :
Index: src/org/apache/xalan/xsltc/dom/DocumentCache.java
===================================================================
RCS file: /home/cvspublic/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DocumentCache.java,v
retrieving revision 1.6.10.10
diff -w -b -r1.6.10.10 DocumentCache.java
99c99,101
< private static final int REFRESH_INTERVAL = 1000;
---
> private static final int REFRESH_INTERVAL = 10000;
> private XSLTCDTMManager dtmManager =
> (XSLTCDTMManager)XSLTCDTMManager.newInstance();
136,137c138,139
< XSLTCDTMManager dtmManager =
< (XSLTCDTMManager)XSLTCDTMManager.newInstance();
---
> // XSLTCDTMManager dtmManager =
> // (XSLTCDTMManager)XSLTCDTMManager.newInstance();
I also had to change the LoadDocument to handle relative file paths correctly :
Index: src/org/apache/xalan/xsltc/dom/LoadDocument.java
===================================================================
RCS file: /home/cvspublic/xml-xalan/java/src/org/apache/xalan/xsltc/dom/LoadDocument.java,v
retrieving revision 1.11.10.11
diff -w -b -r1.11.10.11 LoadDocument.java
139c139
< newdom = cache.retrieveDocument(originalUri, mask, translet);
---
> newdom = cache.retrieveDocument(uri, mask, translet);
I will try to send more details as soon as possible.
Thanks again for your good work.
-- Mickael Guessant
