diff options
author | slewis | 2005-08-28 06:08:04 +0000 |
---|---|---|
committer | slewis | 2005-08-28 06:08:04 +0000 |
commit | cc464f1f059cf40b132a24211309a4ea54c6d69d (patch) | |
tree | 442f6b9209e6c5c722ea2f381ea651c0b4111938 /providers | |
parent | c5bd2401101046772959dc2f61356c2717673ecb (diff) | |
download | org.eclipse.ecf-cc464f1f059cf40b132a24211309a4ea54c6d69d.tar.gz org.eclipse.ecf-cc464f1f059cf40b132a24211309a4ea54c6d69d.tar.xz org.eclipse.ecf-cc464f1f059cf40b132a24211309a4ea54c6d69d.zip |
Added/tested support for google (gmail.com) service...works!
Diffstat (limited to 'providers')
2 files changed, 20 insertions, 3 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java index eee03189c..b5d11412c 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java @@ -56,6 +56,7 @@ import org.eclipse.ecf.provider.xmpp.XmppPlugin; import org.eclipse.ecf.provider.xmpp.events.IQEvent; import org.eclipse.ecf.provider.xmpp.events.MessageEvent; import org.eclipse.ecf.provider.xmpp.events.PresenceEvent; +import org.eclipse.ecf.provider.xmpp.identity.XMPPID; import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID; import org.eclipse.ecf.provider.xmpp.smack.ECFConnection; import org.eclipse.ecf.provider.xmpp.smack.ECFConnectionObjectPacketEvent; @@ -79,6 +80,8 @@ public class XMPPClientSOContainer extends ClientSOContainer { public static final String XMPP_SHARED_OBJECT_ID = XMPPClientSOContainer.class .getName() + ".xmpphandler"; + private static final String GOOGLE_SERVICENAME = "gmail.com"; + int keepAlive = 0; protected IIMMessageSender messageSender = null; protected XMPPPresenceSharedObject sharedObject = null; @@ -140,7 +143,15 @@ public class XMPPClientSOContainer extends ClientSOContainer { protected ISynchAsynchConnection makeConnection(ID remoteSpace, Object data) throws ConnectionInstantiationException { ISynchAsynchConnection conn = null; - conn = new ECFConnection(getConnectNamespace(),receiver); + boolean google = false; + if (remoteSpace instanceof XMPPID) { + XMPPID theID = (XMPPID) remoteSpace; + String host = theID.getHostname(); + if (host.equals(GOOGLE_SERVICENAME)) { + google = true; + } + } + conn = new ECFConnection(google,getConnectNamespace(),receiver); Object res = conn.getAdapter(IIMMessageSender.class); if (res != null) { // got it diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/smack/ECFConnection.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/smack/ECFConnection.java index 84178b58b..48085394a 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/smack/ECFConnection.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/smack/ECFConnection.java @@ -23,6 +23,7 @@ import org.eclipse.ecf.provider.xmpp.container.IIMMessageSender; import org.eclipse.ecf.provider.xmpp.identity.XMPPID; import org.jivesoftware.smack.Chat; import org.jivesoftware.smack.ConnectionListener; +import org.jivesoftware.smack.GoogleTalkConnection; import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.RosterEntry; @@ -53,6 +54,8 @@ public class ECFConnection implements ISynchAsynchConnection, IIMMessageSender { protected boolean isConnected = false; protected Namespace namespace = null; + protected boolean google = false; + protected void debug(String msg) { if (Trace.ON && trace != null) { trace.msg(msg); @@ -83,9 +86,10 @@ public class ECFConnection implements ISynchAsynchConnection, IIMMessageSender { public XMPPConnection getXMPPConnection() { return connection; } - public ECFConnection(Namespace ns, IAsynchConnectionEventHandler h) { + public ECFConnection(boolean google, Namespace ns, IAsynchConnectionEventHandler h) { this.handler = h; this.namespace = ns; + this.google = google; if (smack != null) { XMPPConnection.DEBUG_ENABLED = true; } @@ -123,7 +127,9 @@ public class ECFConnection implements ISynchAsynchConnection, IIMMessageSender { String username = jabberURI.getUsername(); serverName = jabberURI.getHostname(); try { - if (serverPort == -1) { + if (google) { + connection = new GoogleTalkConnection(); + } else if (serverPort == -1) { connection = new XMPPConnection(serverName); } else { connection = new XMPPConnection(serverName, serverPort); |