[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] review for xmpp provider bug

Hi Eugen,

Eugen Reiswich wrote:
Hi Scott,

how do I send a presence update? I tried to use: getRosterManager().getPresenceSender().sendPresenceUpdate(xmppid, IPresence.Type.AVAILABLE); but this didn't work because the ECF implementation says:

public void sendPresenceUpdate(ID targetId, IPresence presence) throws ECFException {
// unimplemented as we have no concept of presence support, either online or offline
}

IPresenceSender.sendPresenceUpdate is implemented...at least in the current version of the ECF XMPP provider...via this class:
org.eclipse.ecf.internal.provider.xmpp.XMPPContainerPresenceHelper line 237


The code you quote above seems to be from the collab example code...i.e. in this class: org.eclipse.ecf.internal.example.collab.presence.PresenceContainer.

You should almost certainly *not* be using this provider of the presence API...but rather one from the org.eclipse.ecf.provider.xmpp bundle (the actual XMPP provider). To get/use the real XMPP provider with remote services, you should be using/including these bundles (plus dependencies):

org.eclipse.ecf.provider.xmpp (xmpp provider)
org.eclipse.ecf.provider.remoteservices (remote services impl code reused by xmpp provider to do remote services)


The container factory name for the XMPP provider is:

XMPPS/Gmail:  ecf.xmpps.smack
XMPP:  ecf.xmpp.smack

So to create a container for your client that uses these full implementations it would be code like

IContainer container = containerFactory.createContainer("ecf.xmpps.smack");
...etc.

Scott