Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 21E2D1826C for ; Thu, 8 Oct 2015 13:21:35 +0000 (UTC) Received: (qmail 60067 invoked by uid 500); 8 Oct 2015 13:21:35 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 60020 invoked by uid 500); 8 Oct 2015 13:21:35 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 60010 invoked by uid 99); 8 Oct 2015 13:21:35 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Oct 2015 13:21:35 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id E128DE090A; Thu, 8 Oct 2015 13:21:34 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: cschneider@apache.org To: commits@camel.apache.org Message-Id: <3bbe3b1218d548f0a0bb5eee18d46e0d@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: camel git commit: CAMEL-9171 Also handle DefaultPacketExtension Date: Thu, 8 Oct 2015 13:21:34 +0000 (UTC) Repository: camel Updated Branches: refs/heads/master 3ebec4335 -> 1d9dc6220 CAMEL-9171 Also handle DefaultPacketExtension Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1d9dc622 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1d9dc622 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1d9dc622 Branch: refs/heads/master Commit: 1d9dc62202c9e70267c9d5d4daaa9af7fba91664 Parents: 3ebec43 Author: Christian Schneider Authored: Thu Oct 8 15:06:18 2015 +0200 Committer: Christian Schneider Committed: Thu Oct 8 15:06:18 2015 +0200 ---------------------------------------------------------------------- .../camel/component/xmpp/XmppBinding.java | 34 ++++++++++++++++---- .../camel/component/xmpp/XmppEndpoint.java | 20 ++++++------ 2 files changed, 38 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/1d9dc622/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 1960540..ddb198b 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,9 +24,12 @@ 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.Message; import org.jivesoftware.smack.packet.Packet; +import org.jivesoftware.smack.packet.PacketExtension; import org.jivesoftware.smackx.jiveproperties.JivePropertiesManager; +import org.jivesoftware.smackx.jiveproperties.packet.JivePropertiesExtension; import org.jivesoftware.smackx.pubsub.packet.PubSub; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -131,13 +134,13 @@ public class XmppBinding { public Map extractHeadersFromXmpp(Packet xmppPacket, Exchange exchange) { Map answer = new HashMap(); - for (String name : JivePropertiesManager.getPropertiesNames(xmppPacket)) { - Object value = JivePropertiesManager.getProperty(xmppPacket, name); - - if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) { - answer.put(name, value); - } + PacketExtension 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 (xmppPacket instanceof Message) { Message xmppMessage = (Message) xmppPacket; @@ -154,4 +157,23 @@ public class XmppBinding { return answer; } + + private void extractHeadersFrom(JivePropertiesExtension jpe, Exchange exchange, Map answer) { + for (String name : jpe.getPropertyNames()) { + Object value = jpe.getProperty(name); + if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) { + answer.put(name, value); + } + } + } + + private void extractHeadersFrom(DefaultPacketExtension jpe, Exchange exchange, Map answer) { + for (String name : jpe.getNames()) { + Object value = jpe.getValue(name); + if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) { + answer.put(name, value); + } + } + } + } http://git-wip-us.apache.org/repos/asf/camel/blob/1d9dc622/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 11da25c..041c7c1 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 @@ -150,21 +150,12 @@ public class XmppEndpoint extends DefaultEndpoint implements HeaderFilterStrateg } public synchronized XMPPConnection createConnection() throws XMPPException, SmackException, IOException { - if (connection != null && connection.isConnected()) { return connection; } if (connection == null) { - if (port > 0) { - if (getServiceName() == null) { - connection = new XMPPTCPConnection(new ConnectionConfiguration(host, port)); - } else { - connection = new XMPPTCPConnection(new ConnectionConfiguration(host, port, serviceName)); - } - } else { - connection = new XMPPTCPConnection(host); - } + connection = createConnectionInternal(); } connection.connect(); @@ -213,6 +204,15 @@ public class XmppEndpoint extends DefaultEndpoint implements HeaderFilterStrateg return connection; } + private XMPPTCPConnection createConnectionInternal() { + if (port == 0) { + port = 5222; + } + String sName = getServiceName() == null ? host : getServiceName(); + ConnectionConfiguration conf = new ConnectionConfiguration(host, port, sName); + return new XMPPTCPConnection(conf); + } + /* * If there is no "@" symbol in the room, find the chat service JID and * return fully qualified JID for the room as room@conference.server.domain