powered by Jive Software

Using wildfire api''s and managers from an external web application

I’'m working on a J2EE app that has requirements on messaging the users in the system. We have an internal model that lives in a EJB module and we have a Web Module that accesses it through business delegates. We recently found MULE and integrated it and the messaging provider it uses was based on smack and that lead us to find Wildfire (that we deploy as a webapp). As we internally have a model for the users we now face the problem of understanding how can we access wildfire and add/modify/edit users, add/modify/edit groups etc.

Digging a bit I saw three approaches to it. One is to use the Wildfire API’‘s that contain managers for these functionality but as they live on the WF server I’'m wondering how can we use them from our EJB backend. Is there a way to expose it (ad ex. via JNDI?), is there some plugin that already does something like this?

Second is the plugin that offers admin functionality via http requests but we find this implementation a bit dirty.

Third is to modify the db ourselves but that exposes the app to problems like what are we supposed to change, what if schema changes, db and server specific stuff (we use hibernate so we can change db’'s on the fly).

What would the right approach be? Are there any others? Are there any ready free solutions?

Thanks and keep up the good work!

I have now notice the External Components tab but I have no idea how to use it, the main documentation doesn’‘t mentions them, where can I get more info on that (if that’'s the correct approach)?

Message was edited by: schrepfler


just a fourth option, http://www.jabber.org/jeps/jep-0050.html “Ad-Hoc Commands” one could consider to solve this problem.


PS: Modifying the database is really not recommended, you’'d have to purge the Wifi db cache after every change.

However, this would still go implemented as an external component right?


I don’'t think that an external component can create server groups, a lot of them are implemented as transports (see url=http://www.jabber.org/software/components.shtmlhttp://www.jabber.org/software/components.shtml[/url]).

So you may write an internal plugin of check if the available ad-hoc instruction set is sufficient.