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 bcdd7a0bbd7 CAMEL-22022: camel-jackson/camel-jacksonxml - Use LinkedHashMap instead of HashMap to keep ordering by default. (#17883) bcdd7a0bbd7 is described below commit bcdd7a0bbd7c739fccb887368c5202680b691eab Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Apr 26 12:24:40 2025 +0200 CAMEL-22022: camel-jackson/camel-jacksonxml - Use LinkedHashMap instead of HashMap to keep ordering by default. (#17883) --- .../camel/component/jackson/AbstractJacksonDataFormat.java | 6 +++--- .../camel/component/jacksonxml/JacksonXMLDataFormat.java | 10 +++++----- .../modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc | 5 +++++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/AbstractJacksonDataFormat.java b/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/AbstractJacksonDataFormat.java index 22db2ba6b90..39567ec4f87 100644 --- a/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/AbstractJacksonDataFormat.java +++ b/components/camel-jackson/src/main/java/org/apache/camel/component/jackson/AbstractJacksonDataFormat.java @@ -22,8 +22,8 @@ import java.io.OutputStream; import java.io.Reader; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -390,11 +390,11 @@ public abstract class AbstractJacksonDataFormat extends ServiceSupport } /** - * Uses {@link HashMap} when unmarshalling. + * Uses {@link LinkedHashMap} when unmarshalling. */ public void useMap() { setCollectionType(null); - setUnmarshalType(HashMap.class); + setUnmarshalType(LinkedHashMap.class); } /** diff --git a/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormat.java b/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormat.java index 4ec59b5bf8f..e769a4aa328 100644 --- a/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormat.java +++ b/components/camel-jacksonxml/src/main/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormat.java @@ -22,8 +22,8 @@ import java.io.OutputStream; import java.io.Reader; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.TimeZone; @@ -91,7 +91,7 @@ public class JacksonXMLDataFormat extends ServiceSupport * Use the default Jackson {@link XmlMapper} and {@link Map} */ public JacksonXMLDataFormat() { - this(HashMap.class); + this(LinkedHashMap.class); } /** @@ -375,11 +375,11 @@ public class JacksonXMLDataFormat extends ServiceSupport } /** - * Uses {@link java.util.HashMap} when unmarshalling. + * Uses {@link java.util.LinkedHashMap} when unmarshalling. */ public void useMap() { setCollectionType(null); - setUnmarshalType(HashMap.class); + setUnmarshalType(LinkedHashMap.class); } /** @@ -533,7 +533,7 @@ public class JacksonXMLDataFormat extends ServiceSupport @Override protected void doInit() throws Exception { - if (unmarshalTypeName != null && (unmarshalType == null || unmarshalType == HashMap.class)) { + if (unmarshalTypeName != null && (unmarshalType == null || unmarshalType == LinkedHashMap.class)) { unmarshalType = camelContext.getClassResolver().resolveClass(unmarshalTypeName); } if (jsonViewTypeName != null && jsonView == null) { diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc index 912e783feb1..b2cf29e1fda 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc @@ -90,6 +90,11 @@ not be able to add the `otherwise` block to the outer Choice. Add options allowing the addition of an `Authorization` header for Basic or Bearer authentication to client and asynchronous MDN requests. +=== camel-jackson / camel-jacksonxml + +The default unmarshalType has been changed from `HashMap` to `LinkedHashMap` that keeps ordering of the elements +so they have similar order as the input document. + === camel-micrometer The `tags` parameter has been _fixed_ to be multivalued and tooling friendly. So