You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dm...@apache.org on 2019/01/22 16:37:49 UTC

[camel] 03/04: Adapt documentation and add possibility to set the marshaller factory in 'camel-core'

This is an automated email from the ASF dual-hosted git repository.

dmvolod pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a32d44eaae3a908306dc6a4d2cdf64744b5b440a
Author: Christian Ribeaud <ch...@novartis.com>
AuthorDate: Mon Jan 21 10:13:30 2019 +0100

    Adapt documentation and add possibility to set the marshaller factory in 'camel-core'
---
 .../camel/model/dataformat/CsvDataFormat.java      | 24 ++++++++++++++++++++++
 .../camel-csv/src/main/docs/csv-dataformat.adoc    |  4 +++-
 .../modules/ROOT/pages/csv-dataformat.adoc         |  2 ++
 .../csv/springboot/CsvDataFormatConfiguration.java | 12 +++++++++++
 4 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/camel-core/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java b/camel-core/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java
index ccc10ea..36e7406 100644
--- a/camel-core/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/model/dataformat/CsvDataFormat.java
@@ -85,6 +85,8 @@ public class CsvDataFormat extends DataFormatDefinition {
     private Boolean trim;
     @XmlAttribute
     private Boolean trailingDelimiter;
+    @XmlAttribute
+    private String marshallerFactoryRef;
 
     // Unmarshall options
     @XmlAttribute
@@ -197,6 +199,10 @@ public class CsvDataFormat extends DataFormatDefinition {
             Object recordConverter = CamelContextHelper.mandatoryLookup(camelContext, recordConverterRef);
             setProperty(camelContext, dataFormat, "recordConverter", recordConverter);
         }
+        if (ObjectHelper.isNotEmpty(marshallerFactoryRef)) {
+            Object marshallerFactory = CamelContextHelper.mandatoryLookup(camelContext, marshallerFactoryRef.trim());
+            setProperty(camelContext, dataFormat, "marshallerFactory", marshallerFactory);
+        }
     }
 
     private static Character singleChar(String value, String attributeName) {
@@ -206,6 +212,24 @@ public class CsvDataFormat extends DataFormatDefinition {
         return value.charAt(0);
     }
 
+    /**
+     * Sets the <code>CsvMarshallerFactory</code> reference.
+     *
+     * @param marshallerFactoryRef the <code>CsvMarshallerFactory</code> reference. Could be <code>null</code>.
+     */
+    public void setMarshallerFactoryRef(String marshallerFactoryRef) {
+        this.marshallerFactoryRef = marshallerFactoryRef;
+    }
+
+    /**
+     * Returns the <code>CsvMarshallerFactory</code> reference.
+     *
+     * @return the <code>CsvMarshallerFactory</code> or <code>null</code> if none has been specified.
+     */
+    public String getMarshallerFactoryRef() {
+        return marshallerFactoryRef;
+    }
+
     public String getFormatRef() {
         return formatRef;
     }
diff --git a/components/camel-csv/src/main/docs/csv-dataformat.adoc b/components/camel-csv/src/main/docs/csv-dataformat.adoc
index 7979999..3a1253d 100644
--- a/components/camel-csv/src/main/docs/csv-dataformat.adoc
+++ b/components/camel-csv/src/main/docs/csv-dataformat.adoc
@@ -12,7 +12,7 @@ exported/imported by Excel.
 ### Options
 
 // dataformat options: START
-The CSV dataformat supports 28 options, which are listed below.
+The CSV dataformat supports 29 options, which are listed below.
 
 
 
@@ -42,6 +42,7 @@ The CSV dataformat supports 28 options, which are listed below.
 | ignoreHeaderCase | false | Boolean | Sets whether or not to ignore case when accessing header names.
 | trim | false | Boolean | Sets whether or not to trim leading and trailing blanks.
 | trailingDelimiter | false | Boolean | Sets whether or not to add a trailing delimiter.
+| marshallerFactoryRef |  | String | Sets the `CsvMarshallerFactory` reference.
 | lazyLoad | false | Boolean | Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one.
 | useMaps | false | Boolean | Whether the unmarshalling should produce maps (HashMap)for the lines values instead of lists. It requires to have header (either defined or collected).
 | useOrderedMaps | false | Boolean | Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires to have header (either defined or collected).
@@ -89,6 +90,7 @@ The component supports 29 options, which are listed below.
 | *camel.dataformat.csv.trim* | Sets whether or not to trim leading and trailing blanks. | false | Boolean
 | *camel.dataformat.csv.use-maps* | Whether the unmarshalling should produce maps (HashMap)for the lines values instead of lists. It requires to have header (either defined or collected). | false | Boolean
 | *camel.dataformat.csv.use-ordered-maps* | Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires to have header (either defined or collected). | false | Boolean
+| *camel.dataformat.csv.marshaller-factory-ref* | Refers to a custom `CsvMarshallerFactory` to lookup from the registry to use. |  | String
 |===
 // spring-boot-auto-configure options: END
 ND
diff --git a/docs/components/modules/ROOT/pages/csv-dataformat.adoc b/docs/components/modules/ROOT/pages/csv-dataformat.adoc
index 7979999..0f8157d 100644
--- a/docs/components/modules/ROOT/pages/csv-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/csv-dataformat.adoc
@@ -47,6 +47,7 @@ The CSV dataformat supports 28 options, which are listed below.
 | useOrderedMaps | false | Boolean | Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires to have header (either defined or collected).
 | recordConverterRef |  | String | Refers to a custom CsvRecordConverter to lookup from the registry to use.
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc.
+| marshallerFactory | | String | Refers to a custom `CsvMarshallerFactory` to lookup from the registry to use.
 |===
 // dataformat options: END
 // spring-boot-auto-configure options: START
@@ -89,6 +90,7 @@ The component supports 29 options, which are listed below.
 | *camel.dataformat.csv.trim* | Sets whether or not to trim leading and trailing blanks. | false | Boolean
 | *camel.dataformat.csv.use-maps* | Whether the unmarshalling should produce maps (HashMap)for the lines values instead of lists. It requires to have header (either defined or collected). | false | Boolean
 | *camel.dataformat.csv.use-ordered-maps* | Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires to have header (either defined or collected). | false | Boolean
+| *camel.dataformat.csv.marshaller-factory-ref* | Refers to a custom `CsvMarshallerFactory` to lookup from the registry to use. |  | String
 |===
 // spring-boot-auto-configure options: END
 ND
diff --git a/platforms/spring-boot/components-starter/camel-csv-starter/src/main/java/org/apache/camel/dataformat/csv/springboot/CsvDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-csv-starter/src/main/java/org/apache/camel/dataformat/csv/springboot/CsvDataFormatConfiguration.java
index b2fc5b5..f8d6bce 100644
--- a/platforms/spring-boot/components-starter/camel-csv-starter/src/main/java/org/apache/camel/dataformat/csv/springboot/CsvDataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-csv-starter/src/main/java/org/apache/camel/dataformat/csv/springboot/CsvDataFormatConfiguration.java
@@ -132,6 +132,10 @@ public class CsvDataFormatConfiguration
      */
     private Boolean trailingDelimiter = false;
     /**
+     * Sets the CsvMarshallerFactory reference.
+     */
+    private String marshallerFactoryRef;
+    /**
      * Whether the unmarshalling should produce an iterator that reads the lines
      * on the fly or if all the lines must be read at one.
      */
@@ -344,6 +348,14 @@ public class CsvDataFormatConfiguration
         this.trailingDelimiter = trailingDelimiter;
     }
 
+    public String getMarshallerFactoryRef() {
+        return marshallerFactoryRef;
+    }
+
+    public void setMarshallerFactoryRef(String marshallerFactoryRef) {
+        this.marshallerFactoryRef = marshallerFactoryRef;
+    }
+
     public Boolean getLazyLoad() {
         return lazyLoad;
     }