diff --git a/components/camel-xmpp/pom.xml b/components/camel-xmpp/pom.xml
index 10a8eabf30ca5..88815edd1a7ec 100644
--- a/components/camel-xmpp/pom.xml
+++ b/components/camel-xmpp/pom.xml
@@ -61,7 +61,7 @@
org.igniterealtime.smack
- smack-java7
+ smack-java8
${smack-version}
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 b4862547c03f3..76d3a20a9d004 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,9 @@
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.support.DefaultHeaderFilterStrategy;
import org.apache.camel.util.ObjectHelper;
-import org.jivesoftware.smack.packet.DefaultExtensionElement;
import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.packet.StandardExtensionElement;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smackx.jiveproperties.JivePropertiesManager;
import org.jivesoftware.smackx.jiveproperties.packet.JivePropertiesExtension;
@@ -135,8 +135,8 @@ public Map extractHeadersFromXmpp(Stanza stanza, Exchange exchan
if (jpe instanceof JivePropertiesExtension) {
extractHeadersFrom((JivePropertiesExtension) jpe, exchange, answer);
}
- if (jpe instanceof DefaultExtensionElement) {
- extractHeadersFrom((DefaultExtensionElement) jpe, exchange, answer);
+ if (jpe instanceof StandardExtensionElement) {
+ extractHeadersFrom((StandardExtensionElement) jpe, exchange, answer);
}
if (stanza instanceof Message) {
@@ -165,9 +165,10 @@ private void extractHeadersFrom(JivePropertiesExtension jpe, Exchange exchange,
}
}
- private void extractHeadersFrom(DefaultExtensionElement jpe, Exchange exchange, Map answer) {
- for (String name : jpe.getNames()) {
- Object value = jpe.getValue(name);
+ private void extractHeadersFrom(StandardExtensionElement jpe, Exchange exchange, Map answer) {
+ for (StandardExtensionElement element : jpe.getElements()) {
+ String name = element.getElementName();
+ Object value = element.getText();
if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) {
answer.put(name, value);
}
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 48edffc949d0c..cfec90532b943 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
@@ -33,7 +33,7 @@ public XmppLogger(String direction) {
@Override
public void processStanza(Stanza stanza) {
if (LOG.isDebugEnabled()) {
- LOG.debug("{} : {}", direction, stanza.toXML(null));
+ LOG.debug("{} : {}", direction, stanza.toXML());
}
}
}
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
index e70c63e1c5506..4bccef49b3209 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
@@ -497,6 +497,16 @@ by the file-based consumers (see the `localWorkDirectory` note in the 4.21 upgra
Ordinary object names are unaffected. A name that resolves outside `fileDir` is now rejected with an
`IllegalArgumentException`.
+=== camel-xmpp - Smack upgraded to 4.4
+
+The camel-xmpp component has upgraded Smack from 4.3.5 to 4.4.8. The `smack-java7` module no longer exists in
+Smack 4.4 and has been replaced by `smack-java8` (relevant if you declared it explicitly alongside camel-xmpp).
+When extracting headers from a stanza whose JiveProperties extension is not parsed by a registered provider,
+the unparsed extension is now represented by Smack's `StandardExtensionElement` (the replacement for the removed
+`DefaultExtensionElement`); flat child elements are mapped to headers as before. See the
+https://github.com/igniterealtime/Smack/wiki/Smack-4.4-Readme[Smack 4.4 readme] for behavioral changes in the
+Smack library itself.
+
=== camel-weaviate - potential breaking change
The Weaviate Java client has been upgraded from v5 (`io.weaviate:client`) to v6 (`io.weaviate:client6`).
diff --git a/parent/pom.xml b/parent/pom.xml
index 0512aa9d79662..8db8ed52b3e4a 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -467,7 +467,7 @@
1.49.0
2.0.18
2.0.17
- 4.3.5
+ 4.4.8
3.18.1
4.3.0
6.11.2