Unmarshal — Converts the message data received from the wire into a format that Apache Camel processors can consume
The Unmarshal pattern uses Apache Camel's pluggable data format mechanism to convert messages into a format appropriate for processing by Apache Camel.
The Unmarshal pattern can be placed anywhere in the body of a route. However, it is typically placed after endpoints that receive the message.
Table 77 describes the properties you can specify using the properties editor.
Table 77. Unmarshal Properties
| Name | Description |
|---|---|
| Data Format Type | Specifies the data type to which the data will be unmarshalled. For data formats that require configuration, the format's tab provides the property fields to configure the marshaller. Because the GZip, Serialization, String, and Zip data formats are part of the
Camel core, you need not add dependencies for them in your
Maven
|
| Ref | Specifies a reference to a Spring bean configuring the Apache Camel data format to which the message body is unmarshalled. |
| Id | Specifies a unique identifier for the endpoint. The Id can be used to refer to the endpoint in the Camel XML file. |
| Description | Specifies a text description for the node. This description is included in the generated XML file, but it is informational only. It is not used by Apache Camel. |
Table 78 describes the properties needed to configure the bindy unmarshaller.
Table 78. bindy Properties
| Name | Description |
|---|---|
| Class Type | Specifies a fully qualified class name that explicitly defines the type to use for
unmarshalling. For example, you might enter
You must use either this property or |
| Locale | Species the language name of the locale whose date and number format will be used. If not specified, the unmarshaller determines and uses the formatting of a default language name. Valid values are the two-letter abbreviation of the language name, in lower case. For example,
For an exhaustive list of language names, see Codes for the Representation of Names of Languages |
| Packages | Specifies the packages to use for unmarshalling. A package contains a defined model with
required annotations properly associated for each class in the model. For example,
you might enter When specifying multiple packages, separate them with a comma ( You must use either this property or |
| Type | Specifies the field type. Select (comma-separated value fields), (fixed-length records), or (key/value pair fields). |
Table 79 describes the properties needed to configure the castor unmarshaller.
Table 79. castor Properties
| Name | Description |
|---|---|
| Classes | Specifies additional classes to add to the Castor XmlContext. Enter the fully
qualified path. When specifying multiple classes, separate them with a comma
(,). |
| Encoding | Specifies the encoding to use when unmarshalling XML to an Object. Default is UTF-8. |
| Mapping File | Specifies the path to the Castor mapping file to load from the classpath. |
| Packages | Specifies any additional packages to add to the Castor XmlContext. Enter the
fully qualified path. When specifying multiple packages, separate them with a comma
(,). |
Table 80 describes the properties needed to configure the crypto unmarshaller.
Table 80. crypto Properties
| Name | Description |
|---|---|
| Algorithm | Specifies the name of the JCE cryptographic algorithm to use. Default is
DES/CBC/PKCS5Padding. |
| Algorithm Parameter Ref | Reference to the JCE AlgorithmParameterSpec to use to initialize the
cipher. Some crypto algorithms, particularly block algorithms, require initialization
by an initial block of data, known as an Initialization
Vector. The JCE passes the Initialization
Vector to the cipher as an AlgorithmParameterSpec. Select
from the list of available options. |
| Buffersize | Specifies the size, in bytes, of the buffer used in the signature process. |
| Crypto Provider | Specifies the name of the JCE Security Provider to use. For options, see Java Cryptography Architecture; Sun Providers Documentation. |
| Init Vector Ref | Reference to a byte array containing the Initialization Vector to use to initialize the cipher. Select from the list of available options. |
| Inline | Enables inlining the configured Initialization Vector into the encrypted data stream. |
| Key Ref | Specifies the value of the keyref attribute within
the <dataFormats> element in a Spring configuration.
For example, <crypto id="basic" algorithm="DES" keyref="desKey" />.
Select from the list of available options. |
| Mac Algorithm | Specifies the algorithm to use to create the Hash-based Message Authentication.
Default is HmacSHA1. For more options, see Java Standard Names Reference. |
| Should Append HMAC | Enables calculating and appending a Message Authentication Code to the decrypted data. |
Table 81 describes the properties needed to configure the csv unmarshaller.
Table 81. csv Properties
| Name | Description |
|---|---|
| Delimiter | Specifies the character to use to separate the fields in a csv record. Default is
, (comma). Valid values are any single character, such as ., |, ;,
#, and so on. |
Table 82 describes the properties needed to configure the custom unmarshaller.
Table 82. custom Properties
| Name | Description |
|---|---|
| Ref | Reference to the file that implements your custom data format using the DataFormat interface. |
Table 83 describes the properties needed to configure the jaxb unmarshaller.
Table 83. jaxb Properties
| Name | Description |
|---|---|
| Context Path | Specifies the context path for the jaxb data format. For example,
org.apache.camel.example
|
| Encoding | Specifies the encoding to use when unmarshalling data. Valid values include:
With no value specified, Fuse IDE defaults to the encoding used by JAXB. |
| Filter Non XML Chars | Enables the filtering of non XML characters during marshalling such that the
marshaller replaces any non XML characters it encounters with the string "
". Otherwise, when it encounters a non XML character, the marshaller throws
an exception. |
| Fragment | Enables the marshaller's FRAGMENT encoding property, which prevents
the marshaller from generating the XML declaration. Enable this property in
conjunction with setting and to perform partial marshalling on only a fragment of the XML
tree. |
| Ignore JAXBElement | Disables the ignoreJAXBElement property so that the unmarshaller
returns the JAXBElement object from the body of the unmarshalled message, instead of
the value of the element instance (default behavior). |
| Part Class | Specifies the uri of the class within the XML tree that you want to marshal, leaving all other classes in the tree as is. Set this property in conjunction with and to perform partial marshalling on only a fragment of the XML tree. |
| Part Namespace | Specifies the Qname of the destination namespace. |
| Pretty Print | Enables pretty printing, which adds white space as needed to tidy up the resulting XML for easy reading. |
Table 84 describes the properties needed to configure the json unmarshaller.
Table 84. json Properties
| Name | Description |
|---|---|
| Library | Specifies the library to use for unmarshalling. Select either XStream or Jackson from the drop-down list. Default is XStream. |
| Pretty Print | Enables pretty printing, which adds white space as needed to tidy up the resulting XML for easy reading. |
| Unmarshal Type Name | Specifies the class type to use when unmarshalling; for example
org.apache.camel.component.jackson.<typeName>. Defaults to using
a map-based type. You can define a custom type to use with
org.codehaus.jackson.map.OblectMapper. |
Table 85 describes the properties needed to configure the pgp unmarshaller.
Table 85. pgp Properties
| Name | Description |
|---|---|
| Armored | Specifies whether the encrypted file was encoded using base64. The default is
Disabled. |
| Integrity | Specifies whether the encrypted file contains an integrity check sign. The
default is Enabled. |
| Key File Name | Specifies the name of the keyring file that contains the private keys to use to
decrypt the data. This file must be accessible as
classpathresource; for example,
org/apache/camel/component/crypto/secring.gpg. |
| Key User Id | Specifies the user id of the key in the pgp keyring that was used for encryption. |
| Password | Specifies the password to use for opening the private key. This password is not used for encryption. |
Table 86 describes the properties needed to configure the protobuf unmarshaller.
Table 86. protobuf Properties
| Name | Description |
|---|---|
| Instance Class | Specifies the name of the instance class to use. This is one of the classes
generated when you compiled your .proto file. Include the builder
generated in the uri; for example,
org.apache.camel.dataformat.protobuf.generated.<nameOfInstanceClass>. |
Table 87 describes the properties needed to configure the secureXML unmarshaller.
Table 87. secureXML Properties
| Name | Description |
|---|---|
| Key Cipher Algorithm[a] | Specifies the cipher algorithm to use to decrypt the asymmetric key. Default is null. Valid values are:
Asymmetric key decryption is enabled when either this property is set, or the
|
| Key Or Trust Store Parameters Id[a] | Specifies the ID of the configuration options to use to create and load a keyStore instance that represents the recipient's keyStore, when performing asymmetric key decryption. |
| Pass Phrase | Specifies a string of alphanumeric characters to use as the passphrase for unmarshalling the message into regular text. The passphrase must be appropriate for the selected decryption algorithm. if not, the unmarshaller throws an exception. When no phrase is specified, the unmarshaller generates and uses a default passphrase. |
| Recipient Key Alias[a] | Specifies the key alias to use for retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption. |
| Secure Tag | Specifies the XPath reference to the XML element to decrypt. If left blank, the entire XML message is decrypted. |
| XML Cipher Algorithm | Specifies the cipher algorithm to use for decrypting message content. Valid values are:
|
[a] Used for asymmetric key encryption | |
Table 88 describes the properties needed to configure the soapjaxb unmarshaller.
Table 88. soapjaxb Properties
| Name | Description |
|---|---|
| Context Path | Specifies the path of the package to use for initializing the JAXB context. |
| Element Name Strategy Ref | Selects the bean reference to the element name and its namespace within the body of the soap message. |
| Encoding | Specifies the encoding to use when unmarshalling data. Valid values include:
With no value specified, Fuse IDE defaults to the encoding used by JAXB. |
Table 89 describes the properties needed to configure the string unmarshaller.
Table 89. string Properties
| Name | Description |
|---|---|
| Charset | Specifies the character set to use for encoding. Valid values include:
With no value specified, Fuse IDE defaults to the encoding used by the platform. |
Table 90 describes the properties needed to configure the tidyMarkup unmarshaller.
Table 90. tidyMarkup Properties
| Name | Description |
|---|---|
| Data Object Type Name | Specifies the type of Object the unmarshaller outputs. Valid values are String
and org.w3c.dom.Node. |
Table 91 describes the properties needed to configure the XmlBeans unmarshaller.
Table 91. XmlBeans Properties
| Name | Description |
|---|---|
| Pretty Print | Enables pretty printing, which adds white space as needed to tidy up the input XML for easy reading. |