Thanks Christian, I managed to sort out this issue. I'm not sure this is an
optimal way of achieving my objective, but it works.
Having experimented around with a number of options, the following works
for me:
from("file:" + autoLoadBaseDir + "?preMove=inprogress&move=.classified")
.routeId("Test-Route")
.loop(fileTypes.length)
.processRef("keFileTypeNameService")
.choice()
.when(header("CamelFileName").contains(header("MyFileType")))
.to("file:" + classesBaseDir +
"/?autoCreate=true&fileName=${header[MyFileType]}/${header[CamelFileName]}");
The `keFileTypeNameService` retrieves the `CamelLoopIndex` property from
the exchange. It then uses this to get the file type at that index. It then
just simply set this file type name in the header. The
`keFileTypeNameService` bean is shown below:
@Service( value = "keFileTypeNameService" )
public class FileTypeNameService implements Processor {
private @Value("${ke.file.types}") String[] fileTypes;
public void process(Exchange exchange) throws Exception {
Integer count = exchange.getProperty("CamelLoopIndex", Integer.class);
String fileType = fileTypes[count];
exchange.getIn().setHeader("MyFileType", fileType);
}
}
I hope this assists someone else.
On Thu, Apr 11, 2013 at 11:18 PM, Christian Mueller <
[email protected]> wrote:
> Try:
> .when(simple("${header[CamelFileName]} contains
> ${header[CamelLoopIndex]}"))
>
> You can find more about the simple language at [1].
>
> [1] http://camel.apache.org/simple.html
>
> Best,
> Christian
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Accessing-CamelLoopIndex-in-route-tp5730719p5730731.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
--
Kind Regards,
Okello Nelson
+254 722 137 826
[email protected]