Project

Profile

Help

Migrating from saxonj 8.7.1 to 9.6HE

Added by nikhileshwar sankaranarayanan almost 9 years ago

Hi, We have a piece of software where we do extensive xslt processing. We have been using SaxonJ 8.7.1 version till now, but with JDK8, it seems like there is a breaking bug in the older versions (https://saxonica.plan.io/issues/1944). So I am moving to 9.6 HE. However we are facing multiple issue in classes like Emitter.java which has been moved under the "net.sf.saxon.serializer" package from "net.sf.saxon.event" package. Also the PreparedStyleSheet class no more has methods to check the compilation failed reason (getReasonUnableToCompile) method.

Also we extensively call java methods from within xslt code, which I heard is also not possible in 9.6. So can you let us know if there is any documentation/guide available for clients doing this migration? If not can someone point out the list of changes that might be required for this migration, especially to call Java methods


Replies (1)

RE: Migrating from saxonj 8.7.1 to 9.6HE - Added by Michael Kay almost 9 years ago

The documentation for Saxon 9.6 (at http://www.saxonica.com/documentation/index.html#!changes) includes detailed lists of changes for all releases back to 7.0 - so your problem is that there is too much documentation, because working through all the changes for 10 major releases is a big undertaking. There are a few small breaking changes in each major release, and when you move forward 10 releases at once they add up to a significant amount of change.

It's not possible to digest the detailed list of changes, because although only 1% of them are likely to affect you, there's no way of knowing which 1% this will be.

In practice I think the easiest approach is first to try and compile your application under 9.6, and work out the reasons for any compilation failures one by one. While you are doing this, try to change your application to avoid use of low-level internal interfaces (such as PreparedStylesheet) wherever you can. Searching the documentation might help you to find cases where a method has been dropped and replaced by something different. You're welcome to ask specific questions about specific interfaces on this forum, but please bear in mind that most of us haven't used 8.7.1 since it was superseded in Sept 2006.

The mechanism for "reflexive" calling of Java extension functions is now available only in Saxon-PE and higher.

    (1-1/1)

    Please register to reply