Hello,

     A few months ago, Myriam Midy did a significant amount of work to 
change XSLTC to use DTM internally.  She committed that work to the 
XSLTC_DTM branch in the Xalan CVS repository.  As Myriam's been busy with 
other things, including Xalan 3.0 development, I began working a few weeks 
to complete what she had started.  The work is still going on in the 
branch.

     One of the primary goals of this work was to eliminate the dual 
maintenance of required for two different internal XML document 
representations:  DTM in Xalan and DOMImpl in XSLTC.  I recently realized 
that these changes have the side-effect of breaking binary compatibility 
for any translets that were created with earlier versions of XSLTC; a 
translet created with an earlier release of XSLTC cannot be loaded with 
the XSLTC run-time classes provided by this merged XSLTC-DTM.

     I realize that there haven't been any promises that XSLTC would 
maintain binary compatibility for translets across releases, but I wanted 
to alert people in case this will seriously affect anyone.  This won't 
become effective until the changes on the XSLTC_DTM branch are folded back 
into the MAIN branch in CVS.

     Here are a few possible uses of XSLTC, and how people who use XSLTC 
in that way will be affected:

1) If you use XSLTC through the JAXP API's you won't be affected by these 
changes.

2) If you use the XSLTC native API, or you use the 
org.apache.xalan.xsltc.cmdline.Compile class to precompile translets whose 
class files you then include in applications or components you build and 
use, you will have to recompile the translets before moving to a new 
version of XSLTC that uses DTM.  Similarly, if you distribute such 
applications or components, but you package the version of XSLTC that will 
be included with the application, you will have to recompile the translets before 
moving to a new version of XSLTC that uses 
DTM.

3) If you precompile translets with an earlier version of XSLTC that you 
then include in an application that is distributed to others, and the end 
users of the application or component have the opportunity to choose which 
version of XSLTC they will use to run the application, this change will 
prevent such users from moving to a release of XSLTC that uses DTM. You'll 
need to provide such end users with a new version of your application that 
contains translets compiled with the new version of XSLTC.

     It's developers who fit the third scenario or something similar to it 
who will be most affected by this, and it's such developers I'd like to 
hear from.  If there isn't anyone who falls into that category, I think we 
can safely proceed; if multitudes are affected, and the solutions aren't 
acceptable to them, we might have to rethink the approach.

Thanks,

Henry
------------------------------------------------------------------
Henry Zongaro      Xalan development
IBM SWS Toronto Lab   Tie Line 969-6044;  Phone (905) 413-6044
mailto:[EMAIL PROTECTED]

Reply via email to