Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
12.44. Example Visitor Configuration
This example will use the
SAXVisitor
implementation as follows:
@TextConsumer public class ChangeItemState implements SAXVisitAfter { @StreamResultWriter private SAXToXMLWriter xmlWriter; @ConfigParam private String newState; public void visitAfter(SAXElement element, ExecutionContext executionContext) throws SmooksException, IOException { element.setAttribute("state", newState); xmlWriter.writeStartElement(element); xmlWriter.writeText(element); xmlWriter.writeEndElement(element); } }
Declaratively configuring
ChangeItemState
to fire on <order-item> fragments having a status of OK
is shown below:
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"> <resource-config selector="order-items/order-item[@status = 'OK']"> <resource>com.acme.ChangeItemState </resource> <param name="newState">COMPLETED</param> </resource-config> </smooks-resource-list>
Custom configuration namespaces can be used to define a cleaner and more strongly typed configuration for the
ChangeItemState
component. A custom configuration namespace component is configured as follows:
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:order="http://www.acme.com/schemas/smooks/order.xsd"> <order:changeItemState itemElement="order-items/order-item[@status = 'OK']" newState="COMPLETED" /> </smooks-resource-list>
This Visitor could also be configured in source code as follows:
Smooks smooks = new Smooks(); smooks.addVisitor(new ChangeItemState().setNewState("COMPLETED"), "order-items/order-item[@status = 'OK']"); smooks.filterSource(new StreamSource(inReader), new StreamResult(outWriter));