Apache may Archive Xalan

A recent post came across the Xalan-Dev mailing list.

Despite asking several times on your private PMC list, the board had
not received a report from this project since a few months.

As a result, we are considering moving the project to the attic,
unless someone steps in quickly to fix things.

Xalan-J active development has been pretty much non-existent since 2.7.1 was released several years ago. Xalan is one of those projects where some lessons on project diversity can be learned. Xalan-J was primarily staffed by IBM committers when it was donated to Apache. It was maintained mostly by those same committers over the years, but there appeared to be no active involvement from the group to diversify the committer base. As IBM’s needs changed, the commitment to Xalan wained. Xalan-J is also only able to handle XSLT 1.0 and XPath 1.0 specifications. Meanwhile the XSLT world has moved onto XSLT 2.0 and XPATH 2.0, and soon XSLT 3.0 and XPATH 3.0 will be a reality.

From an open source perspective, I strongly believe there needs to be another alternative to XSLT processor than just Saxon for the java crowd. Both IBM and Oracle have commercial XSLT 2.0 development (which by the way, I’m pretty sure the IBM implementation is based off the Xalan code base for XSLT 2.0 that was started but never offically released). So, if  Xalan does go to the archives, it may be a perfect opportunity for a GitHub Fork of the Xalan project, to see if it can be resurrected a bit. There is a small community out there that is interested in making Xalan-J XSLT 2.0 compatible, but without active committers on the Apache project to apply patches, and nominate new committers, the project is all but dead at Apache.

So projects, take note, making sure you have good project diversity, it will help your project survive longer term, when interests of one part of the community turns in a different direction.   Xalan can still be saved at Apache, it just is going to take the community to be a bit more vocal and want to save it.  If not, it’s free game to be forked and maintained elsewhere and maybe eventually donated back to Apache or another Foundation.

About these ads
This entry was posted in eclipse, open source, xml, xsl, xslt. Bookmark the permalink.

10 Responses to Apache may Archive Xalan

  1. Pingback: Dave Carver: Apache may Archive Xalan

  2. John Cowan says:

    I think people gave up on Xalan because it was so buggy and the bugs never got fixed, making the effort seem intractable. Unfortunately, Saxon now has an overwhelming first-mover advantage.

    • kingargyle says:

      While I agree Saxon has the advantage, unfortunately for some, there are IP concerns about the code base. Whether these are justified or not is a matter for lawyers to decide. I still think it would be good to revitalize the Xalan code base, and fix the outstanding issues, plus make it work with XSLT 2.x and 3.x. The other issue I have right now with Saxon, is that it really is only maintained by one person, and there is no build script to build the source (one has to recreate it from scratch).

      There is good dialog happening now on the Xalan-Dev mailing list, so we’ll see what comes of it. As I stated I don’t necessarily see it going to the Attic as a bad thing, just an opportunity for something new to evolve from it.

  3. Aaron Anderson says:

    I was hoping someone would build an XPath 2.0/XQuery 2.0 implementation on top of this promising project that was pitched as an Apache Incubator project but then deferred. Unfortunately I don’t have the time to attempt it.

    http://code.google.com/p/genxdm/

    • kingargyle says:

      There is already another java open source XPath 2.0 processor available.

      http://wiki.eclipse.org/PsychoPathXPathProcessor

      The Xerces-J project is already using it for XML Schema 1.1 assertions, and I’ve thought about seeing what it would take to get Xalan-J to use it for XPath.

      • Aaron Anderson says:

        I am unfamiliar with the PsychoPathXPathProcessor project but what was compelling to me about genxdm is that implements the full XQuery/XPath 2.0 data model which is most of the grunt work of an XQuery/XPath implementation. Plus it comes from a Tibco project which gives it some pedigree.

  4. Oh boy – How I wish I knew about this GenXDM stuff before I went and rewrote the API for PsychoPath :-( This is pretty neat – checking it out now (literally, ‘svn co’).

    Well, mabye not, there were other things I wanted to achieve (such as untying the static and dynamic contexts) but this is a great starting-point for somebody wanting to implement an XQuery or XSLT2.0 on top of. It’s practically begging for it.

    (Not that PsychoPath is too bad to start with, especially of you want to leverage the type stuff. For fun/learning, I’ve been toying with implementing XSLT in Scala, using PsychoPath for the expressions, but it really lacks ‘pattern’ support, anyway.)

    There’s been some requests about using PsychoPath2 codebase for a XSLT2 version of Xalan, but I don’t quite think it’s a good fit. Also, to get decent speed, the PsychoPath code base would have to be hacked quite a bit. For Xalan, I’d recommend a fork.

    About the grunt work of such an implementation: Well, perhaps a simple implementation, but not one which has been tuned to the level that Saxon or even Xalan has. That’s a lot of work!

  5. John Snelson says:

    If you want another XSLT 2.0 implementation, don’t start with an XSLT 1.0 implementation. Seriously, XSLT 2.0 is so different from 1.0 inside the language that you’ll get next to no benefit from the XSLT 1.0 foundations. Instead, go find a nice open source XQuery implementation and adapt that to XSLT 2.0. Here’s one, for instance (no connection to me):

    http://mxquery.org/

    Or as has been discussed, use an XPath 2.0 like pychopath. It’s probably a couple of months work to write XQuery on top of XPath 2.0 support, and maybe another 6 months to get XSLT 2.0. Writing XSLT 2.0 on top of XSLT 1.0 is going to easily be 2 years work, if not more.

  6. kingargyle says:

    Here’s an update, Apache is resurrecting the Xalan PMC, so there may be some life left in Xalan. If you are interested in helping bring it back from the brink, please join the Apache Xalan-Dev mailing list and participate in the conversation.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s