This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 33d9cd1eabc8 CAMEL-23562: camel-xmpp - upgrade Smack from 4.3.5 to
4.4.8
33d9cd1eabc8 is described below
commit 33d9cd1eabc8eb6ddf848305ac0e1b4cbd68e4f2
Author: Andrea Cosentino <[email protected]>
AuthorDate: Mon Jul 20 22:43:06 2026 +0200
CAMEL-23562: camel-xmpp - upgrade Smack from 4.3.5 to 4.4.8
Upgrade Smack dependency from 4.3.5 to 4.4.8. Replace the removed
smack-java7 module with smack-java8, migrate DefaultExtensionElement
to StandardExtensionElement, and fix the ambiguous toXML(null) call.
Includes upgrade guide entry for 4.22.
Closes #24958
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
components/camel-xmpp/pom.xml | 2 +-
.../java/org/apache/camel/component/xmpp/XmppBinding.java | 13 +++++++------
.../java/org/apache/camel/component/xmpp/XmppLogger.java | 2 +-
.../modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc | 10 ++++++++++
parent/pom.xml | 2 +-
5 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/components/camel-xmpp/pom.xml b/components/camel-xmpp/pom.xml
index 10a8eabf30ca..88815edd1a7e 100644
--- a/components/camel-xmpp/pom.xml
+++ b/components/camel-xmpp/pom.xml
@@ -61,7 +61,7 @@
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
- <artifactId>smack-java7</artifactId>
+ <artifactId>smack-java8</artifactId>
<version>${smack-version}</version>
</dependency>
<dependency>
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 b4862547c03f..76d3a20a9d00 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.Exchange;
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 class XmppBinding {
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 @@ public class XmppBinding {
}
}
- private void extractHeadersFrom(DefaultExtensionElement jpe, Exchange
exchange, Map<String, Object> answer) {
- for (String name : jpe.getNames()) {
- Object value = jpe.getValue(name);
+ private void extractHeadersFrom(StandardExtensionElement jpe, Exchange
exchange, Map<String, Object> 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 48edffc949d0..cfec90532b94 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 class XmppLogger implements StanzaListener {
@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 a5eb1528120b..79f816747078 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
@@ -496,6 +496,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 0512aa9d7966..8db8ed52b3e4 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -467,7 +467,7 @@
<slack-api-model-version>1.49.0</slack-api-model-version>
<slf4j-api-version>2.0.18</slf4j-api-version>
<slf4j-version>2.0.17</slf4j-version>
- <smack-version>4.3.5</smack-version>
+ <smack-version>4.4.8</smack-version>
<smallrye-config-version>3.18.1</smallrye-config-version>
<smallrye-health-version>4.3.0</smallrye-health-version>
<smallrye-fault-tolerance-version>6.11.2</smallrye-fault-tolerance-version>