org.jboss.soa.esb.actions.converters
Class XStreamToObject
java.lang.Object
org.jboss.soa.esb.actions.AbstractActionLifecycle
org.jboss.soa.esb.actions.AbstractActionPipelineProcessor
org.jboss.soa.esb.actions.converters.AbstractObjectXStream
org.jboss.soa.esb.actions.converters.XStreamToObject
- All Implemented Interfaces:
- ActionLifecycle, ActionPipelineProcessor
public class XStreamToObject
- extends AbstractObjectXStream
Object to processor.
Uses the XStream processor to generate an XML message String from the supplied object.
Sample Action Configuration:
<Action name="doCustomer" processor="XStreamObject">
<property name="class-alias" value="Customer" /> <!-- Optional. Class alias used in call to XStream.alias(String, Class) prior to deserialisation. -->
<property name="incoming-type" value="CustomerProcessor" /> <!-- Required. Class for incoming type used to process the message after deserialisation. -->
<property name="exclude-package" value="false" /> <!-- Optional. Default "true". Not applicable if a "class-alias" is specified. -->
<property name="root-node" value="/root/Customer" />
<!-- Optional. Specify an XPath expression be used to determine the root node used with XStream.
Useful when the object to convert is not the root node of the document -->
<property name="aliases"> <!-- Optional list of extra aliases to add to XStream -->
<alias name="aliasName" class="className" />
<alias name="aliasName" class="className" />
...
</property>
</Action>
The XML root element is either set from the "class-alias" property or the classes full name. In the later case, the class package is
excluded unless "exclude-package" is set to "false"/"no".
This can be used with ObjectToXStream
- Since:
- Version 4.0
- Author:
- danielmarchant, Daniel Bevenius
Method Summary |
protected void |
addAliases(java.util.Map<java.lang.String,java.lang.String> aliases,
com.thoughtworks.xstream.XStream xstream)
Added the aliases contained in the passed-in map to the
passed-in XStream object |
protected java.lang.Object |
fromXmlToObject(java.lang.String xml,
java.lang.Object root)
|
protected java.util.Map<java.lang.String,java.lang.String> |
getAliases(ConfigTree configTree)
Will extract the alias elements from the passed-in conifgTree |
Message |
process(Message message)
Processes the message by using the giving class-processor. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
XStreamToObject
public XStreamToObject(ConfigTree properties)
- Public constructor.
- Parameters:
properties
- Action Properties.
- Throws:
ConfigurationException
- Action not properly configured.
XStreamToObject
protected XStreamToObject(java.lang.String actionName,
java.util.List<KeyValuePair> properties)
- Public constructor.
- Parameters:
actionName
- Action name.properties
- Action Properties.
- Throws:
ConfigurationException
- Action not properly configured.
process
public Message process(Message message)
throws ActionProcessingException
- Processes the message by using the giving class-processor.
- Parameters:
message
- The current message being processed.
- Returns:
- The message to be passed to the next stage of the pipeline.
- Throws:
ActionProcessingException
- for errors during processing.
getAliases
protected java.util.Map<java.lang.String,java.lang.String> getAliases(ConfigTree configTree)
- Will extract the alias elements from the passed-in conifgTree
- Parameters:
configTree
- the configuration for this class
- Returns:
- Map either an empty map or a map containing the alias name
as its key and the corresponding value is the class to map
it to.
addAliases
protected void addAliases(java.util.Map<java.lang.String,java.lang.String> aliases,
com.thoughtworks.xstream.XStream xstream)
throws ActionProcessingException
- Added the aliases contained in the passed-in map to the
passed-in XStream object
- Parameters:
aliases
- Map of aliases.
- Throws:
ActionProcessingException
fromXmlToObject
protected java.lang.Object fromXmlToObject(java.lang.String xml,
java.lang.Object root)
throws ActionProcessingException
- Parameters:
xml
- the xml Stringroot
- an instance of the type of the root element
- Throws:
ActionProcessingException
javax.xml.parsers.ParserConfigurationException
java.io.IOException
org.xml.sax.SAXException