I spent most of today getting XML-RPC working at work…. Our code is still based on Mozilla 0.9.1 (for reasons I am pretty sure I have laid out here before), and while nsIXmlRpcClient existed before 0.9.1, it was broken IN 0.9.1. I started thumbing through the CVS logs using Good ol’ Bonsai and I found a version that was released soon after 0.9.1 that “brought the client up to date with the current API”. Unfortunately, apparently most of the API changes came after 0.9.1 as well… So I spent the day wrangling the code I had to work under 0.9.1, needing to write a helper class or two to make it butter. While I felt good seeing a successful call from client to server (and the successful response), it pisses me off that I had to write a whole bunchof code that will get thrown out when we move to Mozilla 1.0 after next month (or it’s release, whichever comes first).
XML-RPC is nothing revolutionary, but both the Mozilla support (client) and Java support (server) made the whole experience fairly pleasant (once I got the client up and running under 0.9.1, of course). It is really easy to make a method call from Mozilla, and apparently from the Java end of things it doesn’t require much more than importing the XML-RPC package to publish the methods of that particular class. I especially like it because it accounts for type information, which is a bit more structure than what we were going to use (a homebrew solution). I am glad I stumbled across XML-RPC now, because a week later and we wouldn’t have had time the eval/implement it…
The past few weeks I have been growing more and more fond of Mozilla and its various architectural systems (especially XPCOM). Adam and I are probably going to start contributing to the tree once we move in together… We have a few projects that we want to tackle that would be very nice for Mozilla (post 1.0, of course).