CoqDevel

the stuff Coquelicot does when it thinks it is at work

Tuesday, December 20, 2005

GenJar update; new releases of JBother & plugins

It's been long time since last writeup in this area but this of course doesn't mean that I was doing nothing! :-). First of all: I got GenJar utility working with SALT plugin (not with SSR), but after the change of schema used for SALTs the gain in size of the plugin is not big - ~200 kB (well, it's still something!). I couldn't get SSR working but I think it is also feasible - I just didn't spend too much time on this - and also worth doing, right now even after switching to new, more space saving schema - the plugin is still ~3 MB.

OK, lots of thing changed: as I have already mentioned, we are using new version of schema for SSR and SALT messages. It is more efficient and compact and has less dependencies on other schemas, notably GMTI (the size od XML Beans-generated code was cut by ~1 MB). Thanks to XML Beans approach, adapting to new schema was quite easy.

Other major improvement (and direct legacy of TIE'05) was introducing 'service discovery' mechanism to both plugins. The main objective of it is to ensure that the other end, the Target Jabber user can understand what is being sent to it. After TIE'05, the 'Crash Team' (sic!) started a long e-mail conversation what approach would be the best and decided that 'annotated presence' is that best. Annotated presence is a way of advertising certain properties of Jabber resource by embedding information about it in tag, similar as it is done in JEP-0115: Entity Capabilities. It turned out that Smack library is pretty much already prepared to handle package extensions (elements like ). In order to use it I had to make changes to core JBother code but I managed to contact and consult the JBother main developer beforehand and got 'permission' to do it (thanks again, Adam!).
I have also added other proposed service discovery mechanism based on standard JEP-0030: Service Discovery mechanism (just in case that we will decide to switch to it instead). Settings for controlling the service discovery in JBother plugins are enclosed in file 'serviceDiscovery.property'.
Other improvement asked for during and after the TIE was a 'history' window, with list of all send and received SSR (after some time, users were loosing track on what they did).

So, what comes next? In the new release (I hope I will make it before SIMEX), I'd like to look closely on two plugins and eliminate the double code that definitely is there. Some more GUI improvements would also be nice to have :-).