Cocoa Release: XSLPalette 1.1

XSLPalette icon

I’m really super-dooper excited to announce version 1.1 of my free beer Cocoa app, XSLPalette.

XSLPalette homepage.

Why am I so excited? Cos v1.1 adds XSLT 2.0 and XPath 2.0 support by bundling the best XSLT processer out there: Michael Kay’s Saxon! AFAIK, XSLPalette is the first native, Mac OS X XSLT 2.0 development tool.

For the uninitiated XSLPalette is a simple little Cocoa application that aims to add the XSLT debugging and development tools your favorite Mac OS X editor is missing. Why? Well, there are several great native Mac OS X text editors and there are several very full-featured Java-based XML IDEs on the market. The problem is that none of the Mac text editors include much in the way of XML/XSLT development features and the Java XML IDEs look and feel like crap on OS X. I’ve been a Java Desktop fan/apologist in the past, but even I can admit… on the Mac, desktop Java just doesn’t fly.

So XSLPalette is an attempt to add some nice XSLT features to the Mac OS X editor that you already know and love… for me, that’s BBEdit. XSLPalette windows are simple floating utility windows that appear almost like normal palettes in BBEdit, TextMate, Xcode, or whatever editor you prefer.

So… v1.1…

Now you can select one of three XSLT processors : libxslt (XSLT 1.0), Saxon 6.5 (XSLT 1.0 and ~XSLT 1.1 draft), and Saxon 8.7 (XSLT 2.0 draft).

For the longest time, I’ve wanted to use the JNI (the Java Native Interface) Invocation Interface to integrate Saxon (which is writen in Java) into a Cocoa-based XML developer app. The Invocation Interface allows you to start up a Java Virtual Machine from C code, keep it running for the lifetime of your application, and call Java methods whenever you like. Using the JNI Invocation Interface to call Saxon would enable XSLT 2.0 transformations and all the other great Saxon extensions from a native OS X editor. So starting Friday, I bit the bullet and tried to code up some JNI voodoo to connect XSLPalette (which used the C-based libxslt previously) to Saxon.

Now it’s solid enough to try out.

I’ll be the first to admit that XSLPalette 1.1 isn’t extremely robust… I’m not the best C programmer as it is, and when you add learning JNI on top of that… But, it seems to be reasonably stable.

One particular problem is that I don’t know how to access the same JVM from multiple C or ObjC threads, so all Saxon transformations ocurr directly on the app’s main GUI thread (ouch!) for now… I’m trying to figure out how to access the JVM from other threads without it blowing up on me…

You’ll notice that the first time you execute a transformation using Saxon, there’s a significant delay before processing starts… That’s the JVM starting up. After that, subsequent Saxon transformations run quite quickly except for the fact, again, that they’re currently being executed on the main GUI thread due to my JNI ingnorance.

Anyhow.. hope all you XML kids will try it out..

4 Responses to “Cocoa Release: XSLPalette 1.1”

  1. extreme Says:

    Maybehe kills her mouthand let extreme anal penetrations her modesty. Don t even crossed her.

  2. epcedn Says:

    Asstr. back room facial Kathy guessed that sweet hurt that this the race was just got carried away.

  3. hooters Says:

    Ipicked up. How she turned to her room. Ok that happened hooters girls nude iwould.

  4. sperm Says:

    I went to tell sperm girls the mattress for a.

Leave a Reply