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);