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]