Repository: camel
Updated Branches:
  refs/heads/CAMEL-10544 [created] 67e05430a


[CAMEL-10544] Upgrade to smack 4.1


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/67e05430
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/67e05430
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/67e05430

Branch: refs/heads/CAMEL-10544
Commit: 67e05430a60111cde7fac9a9b8f70b5c7745a9a5
Parents: b13b2fb
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Thu Dec 22 10:16:58 2016 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Thu Dec 22 10:16:58 2016 +0100

----------------------------------------------------------------------
 components/camel-xmpp/pom.xml                   | 10 ++++
 .../camel/component/xmpp/XmppBinding.java       | 22 ++++-----
 .../camel/component/xmpp/XmppConsumer.java      | 50 ++++++++++++--------
 .../component/xmpp/XmppDirectProducer.java      | 18 +++----
 .../camel/component/xmpp/XmppEndpoint.java      | 42 ++++++++--------
 .../component/xmpp/XmppGroupChatProducer.java   |  8 ++--
 .../apache/camel/component/xmpp/XmppLogger.java |  8 ++--
 .../camel/component/xmpp/XmppMessage.java       | 10 ++--
 .../component/xmpp/XmppPrivateChatProducer.java | 16 +++----
 .../component/xmpp/XmppPubSubProducer.java      |  6 +--
 parent/pom.xml                                  |  2 +-
 11 files changed, 110 insertions(+), 82 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-xmpp/pom.xml b/components/camel-xmpp/pom.xml
index ef497bd..89c9f13 100644
--- a/components/camel-xmpp/pom.xml
+++ b/components/camel-xmpp/pom.xml
@@ -47,11 +47,21 @@
     </dependency>
     <dependency>
       <groupId>org.igniterealtime.smack</groupId>
+      <artifactId>smack-java7</artifactId>
+      <version>${smack-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.igniterealtime.smack</groupId>
       <artifactId>smack-core</artifactId>
       <version>${smack-version}</version>
     </dependency>
     <dependency>
       <groupId>org.igniterealtime.smack</groupId>
+      <artifactId>smack-im</artifactId>
+      <version>${smack-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.igniterealtime.smack</groupId>
       <artifactId>smack-extensions</artifactId>
       <version>${smack-version}</version>
     </dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java
index b33bdbb..503a916 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java
@@ -24,10 +24,10 @@ import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultHeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.util.ObjectHelper;
-import org.jivesoftware.smack.packet.DefaultPacketExtension;
+import org.jivesoftware.smack.packet.DefaultExtensionElement;
+import org.jivesoftware.smack.packet.ExtensionElement;
 import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.smack.packet.Packet;
-import org.jivesoftware.smack.packet.PacketExtension;
+import org.jivesoftware.smack.packet.Stanza;
 import org.jivesoftware.smackx.jiveproperties.JivePropertiesManager;
 import org.jivesoftware.smackx.jiveproperties.packet.JivePropertiesExtension;
 import org.jivesoftware.smackx.pubsub.packet.PubSub;
@@ -94,7 +94,7 @@ public class XmppBinding {
     /**
      * Populates the given XMPP packet from the inbound exchange
      */
-    public void populateXmppPacket(Packet packet, Exchange exchange) {
+    public void populateXmppPacket(Stanza packet, Exchange exchange) {
         Set<Map.Entry<String, Object>> entries = 
exchange.getIn().getHeaders().entrySet();
         for (Map.Entry<String, Object> entry : entries) {
             String name = entry.getKey();
@@ -118,7 +118,7 @@ public class XmppBinding {
     /**
      * Extracts the body from the XMPP message
      */
-    public Object extractBodyFromXmpp(Exchange exchange, Packet xmppPacket) {
+    public Object extractBodyFromXmpp(Exchange exchange, Stanza xmppPacket) {
         return (xmppPacket instanceof Message) ? getMessageBody((Message) 
xmppPacket) : xmppPacket;
     }
 
@@ -131,15 +131,15 @@ public class XmppBinding {
         return messageBody;
     }
 
-    public Map<String, Object> extractHeadersFromXmpp(Packet xmppPacket, 
Exchange exchange) {
+    public Map<String, Object> extractHeadersFromXmpp(Stanza xmppPacket, 
Exchange exchange) {
         Map<String, Object> answer = new HashMap<String, Object>();
 
-        PacketExtension jpe = 
xmppPacket.getExtension(JivePropertiesExtension.NAMESPACE);
+        ExtensionElement jpe = 
xmppPacket.getExtension(JivePropertiesExtension.NAMESPACE);
         if (jpe != null && jpe instanceof JivePropertiesExtension) {
             extractHeadersFrom((JivePropertiesExtension)jpe, exchange, answer);
         }
-        if (jpe != null && jpe instanceof DefaultPacketExtension) {
-            extractHeadersFrom((DefaultPacketExtension)jpe, exchange, answer);
+        if (jpe != null && jpe instanceof DefaultExtensionElement) {
+            extractHeadersFrom((DefaultExtensionElement)jpe, exchange, answer);
         }
 
         if (xmppPacket instanceof Message) {
@@ -152,7 +152,7 @@ public class XmppBinding {
             answer.put(XmppConstants.MESSAGE_TYPE, pubsubPacket.getType());
         }
         answer.put(XmppConstants.FROM, xmppPacket.getFrom());
-        answer.put(XmppConstants.PACKET_ID, xmppPacket.getPacketID());
+        answer.put(XmppConstants.PACKET_ID, xmppPacket.getStanzaId());
         answer.put(XmppConstants.TO, xmppPacket.getTo());
 
         return answer;
@@ -167,7 +167,7 @@ public class XmppBinding {
         }
     }
 
-    private void extractHeadersFrom(DefaultPacketExtension jpe, Exchange 
exchange, Map<String, Object> answer) {
+    private void extractHeadersFrom(DefaultExtensionElement jpe, Exchange 
exchange, Map<String, Object> answer) {
         for (String name : jpe.getNames()) {
             Object value = jpe.getValue(name);
             if (!headerFilterStrategy.applyFilterToExternalHeaders(name, 
value, exchange)) {

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppConsumer.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppConsumer.java
index 5bc0d35..a818396 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppConsumer.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppConsumer.java
@@ -23,37 +23,40 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.camel.util.URISupport;
-import org.jivesoftware.smack.Chat;
-import org.jivesoftware.smack.ChatManager;
-import org.jivesoftware.smack.ChatManagerListener;
 import org.jivesoftware.smack.MessageListener;
-import org.jivesoftware.smack.PacketListener;
 import org.jivesoftware.smack.SmackConfiguration;
 import org.jivesoftware.smack.SmackException;
-import org.jivesoftware.smack.XMPPConnection;
+import org.jivesoftware.smack.StanzaListener;
+import org.jivesoftware.smack.chat.Chat;
+import org.jivesoftware.smack.chat.ChatManager;
+import org.jivesoftware.smack.chat.ChatManagerListener;
+import org.jivesoftware.smack.chat.ChatMessageListener;
 import org.jivesoftware.smack.filter.AndFilter;
 import org.jivesoftware.smack.filter.MessageTypeFilter;
 import org.jivesoftware.smack.filter.OrFilter;
-import org.jivesoftware.smack.filter.PacketTypeFilter;
+import org.jivesoftware.smack.filter.StanzaTypeFilter;
 import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.smack.packet.Message.Type;
-import org.jivesoftware.smack.packet.Packet;
 import org.jivesoftware.smack.packet.Presence;
+import org.jivesoftware.smack.packet.Stanza;
+import org.jivesoftware.smack.tcp.XMPPTCPConnection;
 import org.jivesoftware.smackx.muc.DiscussionHistory;
+import org.jivesoftware.smackx.muc.MUCNotJoinedException;
 import org.jivesoftware.smackx.muc.MultiUserChat;
+import org.jivesoftware.smackx.muc.MultiUserChatManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * A {@link org.apache.camel.Consumer Consumer} which listens to XMPP packets
  */
-public class XmppConsumer extends DefaultConsumer implements PacketListener, 
MessageListener, ChatManagerListener {
+public class XmppConsumer extends DefaultConsumer implements StanzaListener, 
ChatMessageListener, MessageListener, 
+    ChatManagerListener {
     private static final Logger LOG = 
LoggerFactory.getLogger(XmppConsumer.class);
     private final XmppEndpoint endpoint;
     private MultiUserChat muc;
     private Chat privateChat;
     private ChatManager chatManager;
-    private XMPPConnection connection;
+    private XMPPTCPConnection connection;
     private ScheduledExecutorService scheduledExecutor;
 
     public XmppConsumer(XmppEndpoint endpoint, Processor processor) {
@@ -84,9 +87,9 @@ public class XmppConsumer extends DefaultConsumer implements 
PacketListener, Mes
         OrFilter pubsubPacketFilter = new OrFilter();
         if (endpoint.isPubsub()) {
             //xep-0060: pubsub#notification_type can be 'headline' or 'normal'
-            pubsubPacketFilter.addFilter(new MessageTypeFilter(Type.headline));
-            pubsubPacketFilter.addFilter(new MessageTypeFilter(Type.normal));
-            connection.addPacketListener(this, pubsubPacketFilter);
+            pubsubPacketFilter.addFilter(MessageTypeFilter.HEADLINE);
+            pubsubPacketFilter.addFilter(MessageTypeFilter.NORMAL);
+            connection.addAsyncStanzaListener(this, pubsubPacketFilter);
         }
 
         if (endpoint.getRoom() == null) {
@@ -107,10 +110,10 @@ public class XmppConsumer extends DefaultConsumer 
implements PacketListener, Mes
             // add the presence packet listener to the connection so we only 
get packets that concerns us
             // we must add the listener before creating the muc
            
-            final AndFilter packetFilter = new AndFilter(new 
PacketTypeFilter(Presence.class));
-            connection.addPacketListener(this, packetFilter);
-
-            muc = new MultiUserChat(connection, 
endpoint.resolveRoom(connection));
+            final AndFilter packetFilter = new AndFilter(new 
StanzaTypeFilter(Presence.class));
+            connection.addAsyncStanzaListener(this, packetFilter);
+            MultiUserChatManager mucm = 
MultiUserChatManager.getInstanceFor(connection);
+            muc = mucm.getMultiUserChat(endpoint.resolveRoom(connection));
             muc.addMessageListener(this);
             DiscussionHistory history = new DiscussionHistory();
             history.setMaxChars(0); // we do not want any historical messages
@@ -207,7 +210,7 @@ public class XmppConsumer extends DefaultConsumer 
implements PacketListener, Mes
         }
     }
 
-    public void processPacket(Packet packet) {
+    public void processPacket(Stanza packet) {
         if (packet instanceof Message) {
             processMessage(null, (Message) packet);
         }
@@ -232,9 +235,18 @@ public class XmppConsumer extends DefaultConsumer 
implements PacketListener, Mes
             // pollMessage is a non blocking method
             // (see http://issues.igniterealtime.org/browse/SMACK-129)
             if (muc != null) {
-                muc.pollMessage();
+                try {
+                    muc.pollMessage();
+                } catch (MUCNotJoinedException e) {
+                    LOG.warn(e.getMessage(), e);
+                }
             }
         }
     }
 
+    @Override
+    public void processMessage(Message message) {
+        processMessage(null, message);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
index f655a4b..96acde4 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
@@ -19,9 +19,9 @@ package org.apache.camel.component.xmpp;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeExchangeException;
 import org.apache.camel.impl.DefaultProducer;
-import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
-import org.jivesoftware.smack.packet.Packet;
+import org.jivesoftware.smack.packet.Stanza;
+import org.jivesoftware.smack.tcp.XMPPTCPConnection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -31,7 +31,7 @@ public class XmppDirectProducer extends DefaultProducer {
 
     private final XmppEndpoint endpoint;
 
-    private XMPPConnection connection;
+    private XMPPTCPConnection connection;
 
     public XmppDirectProducer(XmppEndpoint endpoint) {
         super(endpoint);
@@ -61,13 +61,13 @@ public class XmppDirectProducer extends DefaultProducer {
 
         try {
             Object body = exchange.getIn().getBody();
-            if (body instanceof Packet) {
-                connection.sendPacket((Packet) body);
+            if (body instanceof Stanza) {
+                connection.sendStanza((Stanza) body);
 
-            } else if (body instanceof Packet[]) {
-                final Packet[] packets = (Packet[]) body;
-                for (final Packet packet : packets) {
-                    connection.sendPacket(packet);
+            } else if (body instanceof Stanza[]) {
+                final Stanza[] packets = (Stanza[]) body;
+                for (final Stanza packet : packets) {
+                    connection.sendStanza(packet);
                 }
 
             } else {

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
index 949af61..6b7920a 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
@@ -31,18 +31,20 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
-import org.apache.camel.util.ObjectHelper;
-import org.jivesoftware.smack.AccountManager;
+import org.apache.camel.util.StringHelper;
 import org.jivesoftware.smack.ConnectionConfiguration;
 import org.jivesoftware.smack.SmackException;
 import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
 import org.jivesoftware.smack.XMPPException.XMPPErrorException;
-import org.jivesoftware.smack.filter.PacketFilter;
-import org.jivesoftware.smack.packet.Packet;
+import org.jivesoftware.smack.filter.StanzaFilter;
+import org.jivesoftware.smack.packet.Stanza;
 import org.jivesoftware.smack.packet.XMPPError;
+import org.jivesoftware.smack.packet.XMPPError.Condition;
 import org.jivesoftware.smack.tcp.XMPPTCPConnection;
-import org.jivesoftware.smackx.muc.MultiUserChat;
+import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
+import org.jivesoftware.smackx.iqregister.AccountManager;
+import org.jivesoftware.smackx.muc.MultiUserChatManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,7 +56,7 @@ import org.slf4j.LoggerFactory;
 public class XmppEndpoint extends DefaultEndpoint implements 
HeaderFilterStrategyAware {
     private static final Logger LOG = 
LoggerFactory.getLogger(XmppEndpoint.class);
 
-    private volatile XMPPConnection connection;
+    private volatile XMPPTCPConnection connection;
     private XmppBinding binding;
 
     @UriPath @Metadata(required = "true")
@@ -90,7 +92,7 @@ public class XmppEndpoint extends DefaultEndpoint implements 
HeaderFilterStrateg
     @UriParam(label = "filter")
     private HeaderFilterStrategy headerFilterStrategy = new 
DefaultHeaderFilterStrategy();
     @UriParam(label = "advanced")
-    private ConnectionConfiguration connectionConfig;
+    private XMPPTCPConnectionConfiguration connectionConfig;
 
     public XmppEndpoint() {
     }
@@ -143,7 +145,7 @@ public class XmppEndpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
         return answer;
     }
 
-    public Exchange createExchange(Packet packet) {
+    public Exchange createExchange(Stanza packet) {
         Exchange exchange = super.createExchange();
         exchange.setProperty(Exchange.BINDING, getBinding());
         exchange.setIn(new XmppMessage(packet));
@@ -159,7 +161,7 @@ public class XmppEndpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
         return true;
     }
 
-    public synchronized XMPPConnection createConnection() throws 
XMPPException, SmackException, IOException {
+    public synchronized XMPPTCPConnection createConnection() throws 
XMPPException, SmackException, IOException {
         if (connection != null && connection.isConnected()) {
             // use existing working connection
             return connection;
@@ -169,17 +171,19 @@ public class XmppEndpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
         connection = null;
 
         LOG.trace("Creating new connection ...");
-        XMPPConnection newConnection = createConnectionInternal();
+        XMPPTCPConnection newConnection = createConnectionInternal();
 
         newConnection.connect();
 
-        newConnection.addPacketListener(new XmppLogger("INBOUND"), new 
PacketFilter() {
-            public boolean accept(Packet packet) {
+        newConnection.addAsyncStanzaListener(new XmppLogger("INBOUND"), new 
StanzaFilter() {
+            
+            public boolean accept(Stanza stanza) {
                 return true;
             }
         });
-        newConnection.addPacketSendingListener(new XmppLogger("OUTBOUND"), new 
PacketFilter() {
-            public boolean accept(Packet packet) {
+        newConnection.addAsyncStanzaListener(new XmppLogger("OUTBOUND"), new 
StanzaFilter() {
+            
+            public boolean accept(Stanza stanza) {
                 return true;
             }
         });
@@ -229,7 +233,7 @@ public class XmppEndpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
             port = 5222;
         }
         String sName = getServiceName() == null ? host : getServiceName();
-        ConnectionConfiguration conf = new ConnectionConfiguration(host, port, 
sName);
+        XMPPTCPConnectionConfiguration conf = 
XMPPTCPConnectionConfiguration.builder().setHost(host).setPort(port).setServiceName(sName).build();
         return new XMPPTCPConnection(conf);
     }
 
@@ -238,16 +242,16 @@ public class XmppEndpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
      * return fully qualified JID for the room as room@conference.server.domain
      */
     public String resolveRoom(XMPPConnection connection) throws XMPPException, 
SmackException {
-        ObjectHelper.notEmpty(room, "room");
+        StringHelper.notEmpty(room, "room");
 
         if (room.indexOf('@', 0) != -1) {
             return room;
         }
 
-        Iterator<String> iterator = 
MultiUserChat.getServiceNames(connection).iterator();
+        Iterator<String> iterator = 
MultiUserChatManager.getInstanceFor(connection).getServiceNames().iterator();
         if (!iterator.hasNext()) {
             throw new XMPPErrorException("Cannot find Multi User Chat service",
-                                         new XMPPError(new 
XMPPError.Condition("Cannot find Multi User Chat service on connection: " + 
getConnectionMessage(connection))));
+                                         new 
XMPPError(Condition.item_not_found));
         }
 
         String chatServer = iterator.next();
@@ -430,7 +434,7 @@ public class XmppEndpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
     /**
      * To use an existing connection configuration
      */
-    public void setConnectionConfig(ConnectionConfiguration connectionConfig) {
+    public void setConnectionConfig(XMPPTCPConnectionConfiguration 
connectionConfig) {
         this.connectionConfig = connectionConfig;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
index 1b2bf63..3f82a7c 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
@@ -23,11 +23,12 @@ import org.apache.camel.RuntimeExchangeException;
 import org.apache.camel.impl.DefaultProducer;
 import org.jivesoftware.smack.SmackConfiguration;
 import org.jivesoftware.smack.SmackException;
-import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
 import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.tcp.XMPPTCPConnection;
 import org.jivesoftware.smackx.muc.DiscussionHistory;
 import org.jivesoftware.smackx.muc.MultiUserChat;
+import org.jivesoftware.smackx.muc.MultiUserChatManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -37,7 +38,7 @@ import org.slf4j.LoggerFactory;
 public class XmppGroupChatProducer extends DefaultProducer {
     private static final Logger LOG = 
LoggerFactory.getLogger(XmppGroupChatProducer.class);
     private final XmppEndpoint endpoint;
-    private XMPPConnection connection;
+    private XMPPTCPConnection connection;
     private MultiUserChat chat;
     private String room;
 
@@ -121,7 +122,8 @@ public class XmppGroupChatProducer extends DefaultProducer {
     protected synchronized void initializeChat() throws XMPPException, 
SmackException {
         if (chat == null) {
             room = endpoint.resolveRoom(connection);
-            chat = new MultiUserChat(connection, room);
+            MultiUserChatManager chatManager = 
MultiUserChatManager.getInstanceFor(connection);
+            chat = chatManager.getMultiUserChat(room);
             DiscussionHistory history = new DiscussionHistory();
             history.setMaxChars(0); // we do not want any historical messages
             chat.join(endpoint.getNickname(), null, history, 
SmackConfiguration.getDefaultPacketReplyTimeout());

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppLogger.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppLogger.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppLogger.java
index fa53ca6..79addcf 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppLogger.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppLogger.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.component.xmpp;
 
-import org.jivesoftware.smack.PacketListener;
-import org.jivesoftware.smack.packet.Packet;
+import org.jivesoftware.smack.StanzaListener;
+import org.jivesoftware.smack.packet.Stanza;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class XmppLogger implements PacketListener {
+public class XmppLogger implements StanzaListener {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(XmppLogger.class);
     private String direction;
@@ -30,7 +30,7 @@ public class XmppLogger implements PacketListener {
         this.direction = direction;
     }
 
-    public void processPacket(Packet packet) {
+    public void processPacket(Stanza packet) {
         if (LOG.isDebugEnabled()) {
             LOG.debug("{} : {}", direction, packet.toXML());
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
index 9cb62bd..79dcd1d 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
@@ -21,13 +21,13 @@ import java.util.Map;
 import org.apache.camel.impl.DefaultMessage;
 import org.apache.camel.util.ExchangeHelper;
 import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.smack.packet.Packet;
+import org.jivesoftware.smack.packet.Stanza;
 
 /**
  * Represents a {@link org.apache.camel.Message} for working with XMPP
  */
 public class XmppMessage extends DefaultMessage {
-    private Packet xmppPacket;
+    private Stanza xmppPacket;
 
     public XmppMessage() {
         this(new Message());
@@ -37,7 +37,7 @@ public class XmppMessage extends DefaultMessage {
         this.xmppPacket = jmsMessage;
     }
 
-    public XmppMessage(Packet jmsMessage) {
+    public XmppMessage(Stanza jmsMessage) {
         this.xmppPacket = jmsMessage;
     }
 
@@ -64,11 +64,11 @@ public class XmppMessage extends DefaultMessage {
     /**
      * Returns the underlying XMPP packet
      */
-    public Packet getXmppPacket() {
+    public Stanza getXmppPacket() {
         return xmppPacket;
     }
 
-    public void setXmppPacket(Packet xmppPacket) {
+    public void setXmppPacket(Stanza xmppPacket) {
         this.xmppPacket = xmppPacket;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
index 2b59fe3..303f4b7 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
@@ -21,14 +21,14 @@ import java.io.IOException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeExchangeException;
 import org.apache.camel.impl.DefaultProducer;
-import org.apache.camel.util.ObjectHelper;
-import org.jivesoftware.smack.Chat;
-import org.jivesoftware.smack.ChatManager;
-import org.jivesoftware.smack.MessageListener;
+import org.apache.camel.util.StringHelper;
 import org.jivesoftware.smack.SmackException;
-import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smack.chat.Chat;
+import org.jivesoftware.smack.chat.ChatManager;
+import org.jivesoftware.smack.chat.ChatMessageListener;
 import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.tcp.XMPPTCPConnection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,14 +38,14 @@ import org.slf4j.LoggerFactory;
 public class XmppPrivateChatProducer extends DefaultProducer {
     private static final Logger LOG = 
LoggerFactory.getLogger(XmppPrivateChatProducer.class);
     private final XmppEndpoint endpoint;
-    private XMPPConnection connection;
+    private XMPPTCPConnection connection;
     private final String participant;
 
     public XmppPrivateChatProducer(XmppEndpoint endpoint, String participant) {
         super(endpoint);
         this.endpoint = endpoint;
         this.participant = participant;
-        ObjectHelper.notEmpty(participant, "participant");
+        StringHelper.notEmpty(participant, "participant");
 
         LOG.debug("Creating XmppPrivateChatProducer to participant {}", 
participant);
     }
@@ -104,7 +104,7 @@ public class XmppPrivateChatProducer extends 
DefaultProducer {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("Creating new chat instance with thread ID {}", 
thread);
             }
-            chat = chatManager.createChat(participant, thread, new 
MessageListener() {
+            chat = chatManager.createChat(participant, thread, new 
ChatMessageListener() {
                 public void processMessage(Chat chat, Message message) {
                     // not here to do conversation
                     if (LOG.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPubSubProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPubSubProducer.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPubSubProducer.java
index 619f28d..ae568fa 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPubSubProducer.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPubSubProducer.java
@@ -19,8 +19,8 @@ package org.apache.camel.component.xmpp;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeExchangeException;
 import org.apache.camel.impl.DefaultProducer;
-import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smack.tcp.XMPPTCPConnection;
 import org.jivesoftware.smackx.pubsub.packet.PubSub;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory;
 public class XmppPubSubProducer extends DefaultProducer {
     private static final transient Logger LOG = 
LoggerFactory.getLogger(XmppPrivateChatProducer.class);
     private final XmppEndpoint endpoint;
-    private XMPPConnection connection;
+    private XMPPTCPConnection connection;
 
     public XmppPubSubProducer(XmppEndpoint endpoint) {
         super(endpoint);
@@ -60,7 +60,7 @@ public class XmppPubSubProducer extends DefaultProducer {
                 PubSub pubsubpacket = (PubSub) body;
                 endpoint.getBinding().populateXmppPacket(pubsubpacket, 
exchange);
                 exchange.getIn().setHeader(XmppConstants.DOC_HEADER, 
pubsubpacket);
-                connection.sendPacket(pubsubpacket);
+                connection.sendStanza(pubsubpacket);
             } else {
                 throw new Exception("Message does not contain a pubsub 
packet");
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/67e05430/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index f3eba30..7193624 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -537,7 +537,7 @@
     <sip-api-version>1.1</sip-api-version>
     <slf4j-api-version>1.7.21</slf4j-api-version>
     <slf4j-version>1.7.21</slf4j-version>
-    <smack-version>4.0.7</smack-version>
+    <smack-version>4.1.9</smack-version>
     <snakeyaml-version>1.17</snakeyaml-version>
     <snappy-version>1.1.2.6</snappy-version>
     <snmp4j-version>2.3.4_1</snmp4j-version>

Reply via email to