Author: lhein
Date: Mon Apr  4 11:46:28 2011
New Revision: 1088566

URL: http://svn.apache.org/viewvc?rev=1088566&view=rev
Log:
fixed incompatibility with new Smack/SmackX version

Modified:
    
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberChatSender.java
    
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java
    
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberGroupChatSender.java
    
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberMarshaler.java
    
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberReceiver.java

Modified: 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberChatSender.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberChatSender.java?rev=1088566&r1=1088565&r2=1088566&view=diff
==============================================================================
--- 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberChatSender.java
 (original)
+++ 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberChatSender.java
 Mon Apr  4 11:46:28 2011
@@ -44,8 +44,12 @@ public class JabberChatSender extends Ja
 
     public void start() throws JBIException {
         super.start();
-        if (chat == null) {
-            chat = getConnection().createChat(participant);
+        // now register listener for new packets
+        if (this.connection != null && this.connection.isConnected()) {
+            // if the user specified a chat room to join we do this here
+            if (this.chat != null) {
+                this.chat = 
this.connection.getChatManager().createChat(this.participant, null);
+            }
         }
     }
 
@@ -75,7 +79,7 @@ public class JabberChatSender extends Ja
     // Implementation methods
     //-------------------------------------------------------------------------
     protected void process(MessageExchange messageExchange, NormalizedMessage 
normalizedMessage) throws Exception {
-        Message message = chat.createMessage();
+        Message message = message = new Message(this.participant, 
Message.Type.normal);
         getMarshaler().fromNMS(message, normalizedMessage);
         chat.sendMessage(message);
         done(messageExchange);

Modified: 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java?rev=1088566&r1=1088565&r2=1088566&view=diff
==============================================================================
--- 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java
 (original)
+++ 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberComponentSupport.java
 Mon Apr  4 11:46:28 2011
@@ -19,12 +19,9 @@ package org.apache.servicemix.components
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.servicemix.components.util.OutBinding;
-import org.jivesoftware.smack.AccountManager;
-import org.jivesoftware.smack.PacketListener;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smack.*;
 import org.jivesoftware.smack.packet.Packet;
-import org.jivesoftware.smack.packet.XMPPError;
+import org.jivesoftware.smack.packet.Presence;
 import org.springframework.beans.factory.InitializingBean;
 
 import javax.jbi.JBIException;
@@ -39,10 +36,11 @@ public abstract class JabberComponentSup
     private static final transient Log log = 
LogFactory.getLog(JabberComponentSupport.class);
 
     private JabberMarshaler marshaler = new JabberMarshaler();
-    private XMPPConnection connection;
+    protected XMPPConnection connection;
+    private ConnectionConfiguration connectionConfig;
     private String host;
     private int port;
-    private String user;
+    protected String user;
     private String password;
     private String resource = "ServiceMix";
     private boolean login = true;
@@ -57,50 +55,49 @@ public abstract class JabberComponentSup
 
     public void start() throws JBIException {
         try {
-            if (connection == null) {
-                if (port > 0) {
-                    connection = new XMPPConnection(host, port);
-                }
-                else {
-                    connection = new XMPPConnection(host);
-                }
-            }
-            if (login && !connection.isAuthenticated()) {
-                if (user != null) {
-                    AccountManager accountManager = new 
AccountManager(connection);
-                    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);
-                            }
+            this.connectionConfig = new ConnectionConfiguration(this.host, 
this.port);
+            this.connectionConfig.setCompressionEnabled(true);
+            this.connectionConfig.setReconnectionAllowed(true);
+            this.connectionConfig.setSASLAuthenticationEnabled(true);
+
+            if (this.connection == null) {
+                this.connection = new XMPPConnection(this.connectionConfig);
+                this.log.debug("Connecting to server " + this.host);
+                this.connection.connect();
+
+                if (this.login && !this.connection.isAuthenticated()) {
+                    if (this.user != null) {
+                        this.log.debug("Logging into Jabber as user: " + 
this.user + " on connection: " + this.connection);
+                        if (this.password == null) {
+                            this.log.warn("No password configured for user: " 
+ this.user);
+                        }
+
+                        AccountManager accountManager = new 
AccountManager(this.connection);
+                        accountManager.createAccount(this.user, this.password);
+
+                        if (this.resource != null) {
+                            this.connection.login(this.user, this.password, 
this.resource);
+                        } else {
+                            this.connection.login(this.user, this.password);
                         }
+                    } else {
+                        this.log.debug("Logging in anonymously to Jabber on 
connection: " + this.connection);
+                        this.connection.loginAnonymously();
                     }
-                }
-                else {
-                    log.info("Logging in anonymously to Jabber on connection: 
" + connection);
-                    connection.loginAnonymously();
+                    // now lets send a presence we are available
+                    this.connection.sendPacket(new 
Presence(Presence.Type.available));
                 }
             }
-        }
-        catch (XMPPException e) {
+        } catch (XMPPException e) {
             throw new JBIException("Failed to login to Jabber. Reason: " + e, 
e);
         }
     }
 
     public void stop() throws JBIException {
-        if (connection != null) {
-            connection.close();
-            connection = null;
+        if (this.connection != null && this.connection.isConnected()) {
+            this.logger.debug("Disconnecting from server " + this.host);
+            this.connection.disconnect();
+            this.connection = null;
         }
     }
 

Modified: 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberGroupChatSender.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberGroupChatSender.java?rev=1088566&r1=1088565&r2=1088566&view=diff
==============================================================================
--- 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberGroupChatSender.java
 (original)
+++ 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberGroupChatSender.java
 Mon Apr  4 11:46:28 2011
@@ -16,22 +16,22 @@
  */
 package org.apache.servicemix.components.jabber;
 
+import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smackx.muc.MultiUserChat;
+
 import javax.jbi.JBIException;
 import javax.jbi.messaging.MessageExchange;
 import javax.jbi.messaging.NormalizedMessage;
 
-import org.jivesoftware.smack.GroupChat;
-import org.jivesoftware.smack.packet.Message;
-
 /**
- * Sends one way messages to a Jabber {@link GroupChat} and receives inbound 
messages
+ * Sends one way messages to a Jabber {@link MultiUserChat} and receives 
inbound messages
  * from the chat
  *
  * @version $Revision: 426415 $
  */
 public class JabberGroupChatSender extends JabberComponentSupport {
 
-    private GroupChat chat;
+    private MultiUserChat chat;
     private String room;
 
     public void afterPropertiesSet() throws Exception {
@@ -45,8 +45,13 @@ public class JabberGroupChatSender exten
 
     public void start() throws JBIException {
         super.start();
-        if (chat == null) {
-            chat = getConnection().createGroupChat(room);
+        try {
+            if (chat == null) {
+                this.chat = new MultiUserChat(this.connection, this.room);
+                this.chat.join(this.user);
+            }
+        } catch (Exception ex) {
+            logger.error("Unable to log into chatroom " + room, ex);
         }
     }
 
@@ -60,11 +65,11 @@ public class JabberGroupChatSender exten
 
     // Properties
     //-------------------------------------------------------------------------
-    public GroupChat getChat() {
+    public MultiUserChat getChat() {
         return chat;
     }
 
-    public void setChat(GroupChat chat) {
+    public void setChat(MultiUserChat chat) {
         this.chat = chat;
     }
 
@@ -80,7 +85,8 @@ public class JabberGroupChatSender exten
     // Implementation methods
     //-------------------------------------------------------------------------
     protected void process(MessageExchange messageExchange, NormalizedMessage 
normalizedMessage) throws Exception {
-        Message message = chat.createMessage();
+        Message message = this.chat.createMessage();
+        message.setTo(this.room);
         getMarshaler().fromNMS(message, normalizedMessage);
         chat.sendMessage(message);
         done(messageExchange);

Modified: 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberMarshaler.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberMarshaler.java?rev=1088566&r1=1088565&r2=1088566&view=diff
==============================================================================
--- 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberMarshaler.java
 (original)
+++ 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberMarshaler.java
 Mon Apr  4 11:46:28 2011
@@ -128,7 +128,7 @@ public class JabberMarshaler {
     }
 
     protected void addNmsProperties(NormalizedMessage normalizedMessage, 
Packet message) {
-        Iterator iter = message.getPropertyNames();
+        Iterator iter = message.getPropertyNames().iterator();
         while (iter.hasNext()) {
             String name = (String) iter.next();
             Object value = message.getProperty(name);

Modified: 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberReceiver.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberReceiver.java?rev=1088566&r1=1088565&r2=1088566&view=diff
==============================================================================
--- 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberReceiver.java
 (original)
+++ 
servicemix/smx3/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/jabber/JabberReceiver.java
 Mon Apr  4 11:46:28 2011
@@ -16,15 +16,15 @@
  */
 package org.apache.servicemix.components.jabber;
 
+import org.jivesoftware.smack.filter.PacketFilter;
+import org.jivesoftware.smack.filter.PacketTypeFilter;
+import org.jivesoftware.smack.packet.Message;
+
 import javax.jbi.JBIException;
 import javax.jbi.messaging.MessageExchange;
 import javax.jbi.messaging.MessagingException;
 import javax.jbi.messaging.NormalizedMessage;
 
-import org.jivesoftware.smack.filter.PacketFilter;
-import org.jivesoftware.smack.filter.PacketTypeFilter;
-import org.jivesoftware.smack.packet.Message;
-
 /**
  * Receives inbound messages or packets and dispatches them into the NMR
  *


Reply via email to