You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2015/10/08 15:21:20 UTC
camel git commit: CAMEL-9171 Also handle DefaultPacketExtension
Repository: camel
Updated Branches:
refs/heads/camel-2.16.x 8d42d7bed -> 27a2ee7cd
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/27a2ee7c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/27a2ee7c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/27a2ee7c
Branch: refs/heads/camel-2.16.x
Commit: 27a2ee7cda40623e842ea748706bb309c046cf4b
Parents: 8d42d7b
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Thu Oct 8 15:06:18 2015 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Thu Oct 8 15:07:46 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/27a2ee7c/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<String, Object> extractHeadersFromXmpp(Packet xmppPacket, Exchange exchange) {
Map<String, Object> answer = new HashMap<String, Object>();
- 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<String, Object> 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<String, Object> 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/27a2ee7c/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