You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2010/10/16 15:30:40 UTC

[jira] Updated: (CAMEL-3237) XmppEndPoint - setting login to false when creating an account results in no action

     [ https://issues.apache.org/activemq/browse/CAMEL-3237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen updated CAMEL-3237:
-------------------------------

    Description: 
{code}
XmppEndPoint myXmppEndPoint = new XmppEndPoint();
(...)
myXmppEndPoint.setCreateAccount(true);
myXmppEndPoint .setLogin(false);
(...)
{code}

This will result in "no action" in xmpp server, if setLogin true the account is created and the user stays online.

I believe it's because of the logic used in createConnection() method of XmppEndPoint that could be changed to:
{code}
if (!connection.isAuthenticated()) {
            if (user != null) {
                if (LOG.isDebugEnabled()) {
                    LOG.debug("Logging in to XMPP as user: " + user + " on connection: " + getConnectionMessage(connection));
                }
                if (password == null) {
                    LOG.warn("No password configured for user: " + user + " on connection: " + getConnectionMessage(connection));
                }

                if (createAccount) {
                    AccountManager accountManager = new AccountManager(connection);
                    accountManager.createAccount(user, password);
                }
                if(login){
                	if (resource != null) {
                		connection.login(user, password, resource);
                	} else {
                		connection.login(user, password);
                	}
                }
            } else {
                if (LOG.isDebugEnabled()) {
                    LOG.debug("Logging in anonymously to XMPP on connection: "  + getConnectionMessage(connection));
                }
                connection.loginAnonymously();
            }
{code}



  was:
XmppEndPoint myXmppEndPoint = new XmppEndPoint();
(...)
myXmppEndPoint.setCreateAccount(true);
myXmppEndPoint .setLogin(false);
(...)

This will result in "no action" in xmpp server, if setLogin true the account is created and the user stays online.

I believe it's because of the logic used in createConnection() method of XmppEndPoint that could be changed to:

if (!connection.isAuthenticated()) {
            if (user != null) {
                if (LOG.isDebugEnabled()) {
                    LOG.debug("Logging in to XMPP as user: " + user + " on connection: " + getConnectionMessage(connection));
                }
                if (password == null) {
                    LOG.warn("No password configured for user: " + user + " on connection: " + getConnectionMessage(connection));
                }

                if (createAccount) {
                    AccountManager accountManager = new AccountManager(connection);
                    accountManager.createAccount(user, password);
                }
                if(login){
                	if (resource != null) {
                		connection.login(user, password, resource);
                	} else {
                		connection.login(user, password);
                	}
                }
            } else {
                if (LOG.isDebugEnabled()) {
                    LOG.debug("Logging in anonymously to XMPP on connection: "  + getConnectionMessage(connection));
                }
                connection.loginAnonymously();
            }





Added code snippet to easier read the code

> XmppEndPoint - setting login to false when creating an account results in no action
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-3237
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3237
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-xmpp
>    Affects Versions: 2.4.0
>            Reporter: Mário Homem
>   Original Estimate: 15 minutes
>  Remaining Estimate: 15 minutes
>
> {code}
> XmppEndPoint myXmppEndPoint = new XmppEndPoint();
> (...)
> myXmppEndPoint.setCreateAccount(true);
> myXmppEndPoint .setLogin(false);
> (...)
> {code}
> This will result in "no action" in xmpp server, if setLogin true the account is created and the user stays online.
> I believe it's because of the logic used in createConnection() method of XmppEndPoint that could be changed to:
> {code}
> if (!connection.isAuthenticated()) {
>             if (user != null) {
>                 if (LOG.isDebugEnabled()) {
>                     LOG.debug("Logging in to XMPP as user: " + user + " on connection: " + getConnectionMessage(connection));
>                 }
>                 if (password == null) {
>                     LOG.warn("No password configured for user: " + user + " on connection: " + getConnectionMessage(connection));
>                 }
>                 if (createAccount) {
>                     AccountManager accountManager = new AccountManager(connection);
>                     accountManager.createAccount(user, password);
>                 }
>                 if(login){
>                 	if (resource != null) {
>                 		connection.login(user, password, resource);
>                 	} else {
>                 		connection.login(user, password);
>                 	}
>                 }
>             } else {
>                 if (LOG.isDebugEnabled()) {
>                     LOG.debug("Logging in anonymously to XMPP on connection: "  + getConnectionMessage(connection));
>                 }
>                 connection.loginAnonymously();
>             }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.