You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/01/30 13:20:03 UTC
[camel] 01/02: CAMEL-16114: camel-jacksonxml should also use
configurer for unarmshaltype
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit e1d506c2ce93c5a2b71e2bd03b5b2fe9a4cdda52
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Jan 30 12:18:26 2021 +0100
CAMEL-16114: camel-jacksonxml should also use configurer for unarmshaltype
---
.../jacksonxml/JacksonXMLDataFormatConfigurer.java | 2 ++
.../camel/component/jacksonxml/JacksonXMLDataFormat.java | 16 ++++++++++++++++
.../reifier/dataformat/JacksonXMLDataFormatReifier.java | 6 +++++-
.../camel/reifier/dataformat/JsonDataFormatReifier.java | 2 +-
4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/components/camel-jacksonxml/src/generated/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormatConfigurer.java b/components/camel-jacksonxml/src/generated/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormatConfigurer.java
index 7c4faa9..44fd8bc 100644
--- a/components/camel-jacksonxml/src/generated/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormatConfigurer.java
+++ b/components/camel-jacksonxml/src/generated/java/org/apache/camel/component/jacksonxml/JacksonXMLDataFormatConfigurer.java
@@ -24,6 +24,8 @@ public class JacksonXMLDataFormatConfigurer extends PropertyConfigurerSupport im
case "moduleClassNames": dataformat.setModuleClassNames(property(camelContext, java.lang.String.class, value)); return true;
case "modulerefs":
case "moduleRefs": dataformat.setModuleRefs(property(camelContext, java.lang.String.class, value)); return true;
+ case "unmarshaltypename":
+ case "unmarshalTypeName": dataformat.setUnmarshalTypeName(property(camelContext, java.lang.String.class, value)); return true;
case "jsonview":
case "jsonView": dataformat.setJsonView(property(camelContext, java.lang.Class.class, value)); return true;
case "include": dataformat.setInclude(property(camelContext, java.lang.String.class, value)); return true;
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 e1b9424..1c5b592 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
@@ -63,6 +63,7 @@ public class JacksonXMLDataFormat extends ServiceSupport
private List<Module> modules;
private String moduleClassNames;
private String moduleRefs;
+ private String unmarshalTypeName;
private Class<?> unmarshalType;
private Class<?> jsonView;
private String include;
@@ -200,6 +201,14 @@ public class JacksonXMLDataFormat extends ServiceSupport
this.xmlMapper = xmlMapper;
}
+ public String getUnmarshalTypeName() {
+ return unmarshalTypeName;
+ }
+
+ public void setUnmarshalTypeName(String unmarshalTypeName) {
+ this.unmarshalTypeName = unmarshalTypeName;
+ }
+
public Class<?> getUnmarshalType() {
return this.unmarshalType;
}
@@ -453,6 +462,13 @@ public class JacksonXMLDataFormat extends ServiceSupport
}
@Override
+ protected void doInit() throws Exception {
+ if (unmarshalTypeName != null && (unmarshalType == null || unmarshalType == HashMap.class)) {
+ unmarshalType = camelContext.getClassResolver().resolveClass(unmarshalTypeName);
+ }
+ }
+
+ @Override
protected void doStart() throws Exception {
if (xmlMapper == null) {
xmlMapper = new XmlMapper();
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JacksonXMLDataFormatReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JacksonXMLDataFormatReifier.java
index 6f31a8f..83674f4 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JacksonXMLDataFormatReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JacksonXMLDataFormatReifier.java
@@ -31,7 +31,11 @@ public class JacksonXMLDataFormatReifier extends DataFormatReifier<JacksonXMLDat
@Override
protected void prepareDataFormatConfig(Map<String, Object> properties) {
properties.put("xmlMapper", definition.getXmlMapper());
- properties.put("unmarshalType", or(definition.getUnmarshalType(), definition.getUnmarshalTypeName()));
+ if (definition.getUnmarshalType() != null) {
+ properties.put("unmarshalTypeName", asTypeName(definition.getUnmarshalType()));
+ } else {
+ properties.put("unmarshalTypeName", definition.getUnmarshalTypeName());
+ }
properties.put("prettyPrint", definition.getPrettyPrint());
properties.put("jsonView", definition.getJsonView());
properties.put("include", definition.getInclude());
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JsonDataFormatReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JsonDataFormatReifier.java
index ab94db3..fa4bfa2 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JsonDataFormatReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/JsonDataFormatReifier.java
@@ -72,7 +72,7 @@ public class JsonDataFormatReifier extends DataFormatReifier<JsonDataFormat> {
// if we have the unmarshal type, but no permission set, then use it to be allowed
String type = definition.getUnmarshalTypeName();
if (type == null && definition.getUnmarshalType() != null) {
- type = definition.getUnmarshalType().getName();
+ type = asTypeName(definition.getUnmarshalType());
}
properties.put("permissions", type);
// xstream has no unmarshalType option