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
*