You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/03/12 16:25:50 UTC

svn commit: r517251 - /incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java

Author: gnodet
Date: Mon Mar 12 08:25:49 2007
New Revision: 517251

URL: http://svn.apache.org/viewvc?view=rev&rev=517251
Log:
SM-331: JabberComponentSupport attempts to create a jabber account every time on start
Thanks Patch provided by Christian, thx !

Modified:
    incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java

Modified: incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java?view=diff&rev=517251&r1=517250&r2=517251
==============================================================================
--- incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java (original)
+++ incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java Mon Mar 12 08:25:49 2007
@@ -24,6 +24,7 @@
 import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
 import org.jivesoftware.smack.packet.Packet;
+import org.jivesoftware.smack.packet.XMPPError;
 import org.springframework.beans.factory.InitializingBean;
 
 import javax.jbi.JBIException;
@@ -67,10 +68,23 @@
             if (login && !connection.isAuthenticated()) {
                 if (user != null) {
                     AccountManager accountManager = new AccountManager(connection);
-                    accountManager.createAccount(user, password);
-
-                    log.info("Logging in to Jabber as user: " + user + " on connection: " + connection);
-                    connection.login(user, password, resource);
+                    try {
+                        log.info("Logging in to Jabber as user: " + user + " on connection: " + connection);
+                        connection.login(user, password, resource);
+                    } catch (XMPPException e) {
+                        final XMPPError error = e.getXMPPError();
+                        // 401 == Not Authorized
+                        if (error != null && error.getCode() == 401) {
+                            // is ist possible to create Accounts?
+                            if (accountManager.supportsAccountCreation()) {
+                                //try to create the Account (maybe it wasn't there)
+                                accountManager.createAccount(user, password);
+                                log.info("Logging in to Jabber as user: " + user + " on connection: " + connection);
+                                // try to login again (if this fails we are screwed and fail ultimatively)
+                                connection.login(user, password, resource);
+                            }
+                        }
+                    }
                 }
                 else {
                     log.info("Logging in anonymously to Jabber on connection: " + connection);