Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-08-28 06:08:04 +0000
committerslewis2005-08-28 06:08:04 +0000
commitcc464f1f059cf40b132a24211309a4ea54c6d69d (patch)
tree442f6b9209e6c5c722ea2f381ea651c0b4111938 /providers
parentc5bd2401101046772959dc2f61356c2717673ecb (diff)
downloadorg.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')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/container/XMPPClientSOContainer.java13
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/smack/ECFConnection.java10
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);

Back to the top