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 <[email protected]>
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