...
We can register the processor in the spring context in two steps.
- add Add a component-scan package in the applicationContext.xml: . Spring will scan the package for service registry when starting.
Code Block xml xml <!-- configure the spring component scan package --> <context:component-scan base-package="org.apache.camel.web.example"/>
- annotate Annotate the processor by adding one line code in the processor. Now the processor is as follows:
Code Block package org.apache.camel.web.example; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.ValidationException; import org.springframework.stereotype.Service; /** * a processor used to validate the message */ @Service(value = "validatingProcessor") public class ValidatingProcessor implements Processor { // ommision }
Now you can run the sample, but it won't do the validation because we haven't configured the route to pass through the processor. You can complete it by editing the applicationContext.xml before running it, but now here we want to show you how to do it through Web Console in groovy language.
Use Content Based Router to orchestrate the processors
...
Code Block |
---|
from("file:src/data?noop=true").convertBodyTo(java.lang.String.class) .processRef("validatingProcessor").to("stream:out").to("activemq:personnel.records") |
Now a expired date is can be specified in the message, so the validating processor can filter the expired messages. You can add message files with content:
Code Block | ||||
---|---|---|---|---|
| ||||
<person user="xueqiang">
<expiredDate>9-1-2009</expiredDate>
<firstName>Xueqiang</firstName>
<lastName>Mi</lastName>
<city>Shanghai</city>
</person>
|
When the the message is out of date, a ValidationException is thrown. To make it a little elegant, you may use doTry...doCatch...doFinally to wrap it up and specify a queue to store the invalid messages.
Source code
Attachments | ||
---|---|---|
|