Gateway to other services

Hi, I’m trying to implement the client side of the gateway functionality in SparkWeb.

I’d like to do it well… but I’m not finding it easy to see where everything should go.

For instance… Spark has the Gateway Plugin, which has registerPresenceListener… I’m not sure how to do the equivelent packet parsing in SparkWeb.

Is there anyone I could talk to who could outline the ‘right way’ to layer the gateway functionality over XIFF?


xep-100 tells me that the namespace should be

query xmlns=‘jabber:iq:register’>

but in the Gateway in Spark, I see

query xmlns=‘jabber:iq:gateway:register’>

I’m trying to model Spark very closely since it works, but I wish I understood the differences from the spec.

Ok… I have a nice Star ready for the next helpful person… come and get it… (if there’s another way I can bribe anyone to help out, let me know.)

I’ve implemented the register / unregister portions, but I’m getting some baffling errors from around line 472 and around line 760.

When I get roster updates after logging in with a registered gateway, some of the JIDs are Unescaped when the code is expecting Escaped or vice-versa.

for instance:

TypeError: Error #1034: Type Coercion failed: cannot convert org.jivesoftware.xiff.core::EscapedJID@407699c1 to org.jivesoftware.xiff.core.UnescapedJID.
at[/Users/jimc/prj/sparkweb/sparkwe b/xiff/src/org/jivesoftware/xiff/im/]

I’m blindly hacking to get rid of the errors one by one… but if there’s a way of solving this at a higher level (so that all JIDs that are attached to items in the Roster are Unescaped) then that would be a huge help!

Does this ring any bells with anyone? … Anyone?


-Jim Carroll