diff --git a/examples/file-split-log-xml/README.adoc b/examples/file-split-log-xml/README.adoc
new file mode 100644
index 0000000..9e1165b
--- /dev/null
+++ b/examples/file-split-log-xml/README.adoc
@@ -0,0 +1,66 @@
+= file-split-log-xml
+
+This is a basic hello world example that uses XML to set-up a Camel file consumer which reads a file in the resources folder.
+
+It demonstrates the following;
+1. Reading a file using camel file endpoint as a consumer.
+2. Splitting the file by row.
+3. Splitting the row by columns.
+4. Usage of properties in the camel endpoint uri.
+5. No Java code required or used, the XML can still be compiled to native code. Pretty cool.
+
+The file consumer has been marked as non-idempotent thus it will read the same file again using a configurable 30 second delay.
+
+TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites
+and other general information.
+
+== Start in the Development mode
+
+[source,shell]
+----
+$ mvn clean compile quarkus:dev -DnoDeps
+----
+
+The above command compiles the project, starts the application and lets the Quarkus tooling watch for changes in your
+workspace. Any modifications in your project will automatically take effect in the running application.
+
+TIP: Please refer to the Development mode section of
+https://camel.apache.org/camel-quarkus/latest/first-steps.html#_development_mode[Camel Quarkus User guide] for more details.
+
+Once the application has started it will wait 5 seconds and then read the file every 30 seconds. By default the row split
+is sequential however you can edit the properties file and set the parallel processing to true. The output should then be
+a little more out of order i.e. non-sequential processing of rows.
+
+=== Package and run the application
+
+Once you are done with developing you may want to package and run the application.
+
+TIP: Find more details about the JVM mode and Native mode in the Package and run section of
+https://camel.apache.org/camel-quarkus/latest/first-steps.html#_package_and_run_the_application[Camel Quarkus User guide]
+
+==== JVM mode
+
+[source,shell]
+----
+$ mvn clean package
+$ java -jar target/*-runner.jar
+...
+
+[org.apa.cam.qua.cor.FastCamelContext] (main) Apache Camel 3.0.0 (CamelContext: camel-quarkus-xml) started in 0.081 seconds
+----
+
+==== Native mode
+
+IMPORTANT: Native mode requires having GraalVM and other tools installed. Please check the Prerequisites section
+of https://camel.apache.org/camel-quarkus/latest/first-steps.html#_prerequisites[Camel Quarkus User guide].
+
+To prepare a native executable using GraalVM, run the following command:
+
+[source,shell]
+----
+$ mvn clean package -Pnative
+$ ./target/*-runner
+...
+[io.quarkus] (main) camel-quarkus-examples-file-log-xml 1.1.0-SNAPSHOT (running on Quarkus 1.1.0.Final) started in 0.011s.
+...
+----
diff --git a/examples/file-split-log-xml/pom.xml b/examples/file-split-log-xml/pom.xml
new file mode 100644
index 0000000..e8fb1c0
--- /dev/null
+++ b/examples/file-split-log-xml/pom.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+   <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+ 
+   
+
+    <artifactId>camel-quarkus-examples-file-log-xml</artifactId>
+    <name>Camel Quarkus :: Examples :: File To Log XML DSL</name>
+    <description>Camel Quarkus Example :: File To Log XML DSL</description>
+
+    
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-timer</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-log</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-xml</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-file</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>build</id>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <workingDir>${project.basedir}</workingDir>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.quarkus</groupId>
+                        <artifactId>quarkus-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>native-image</id>
+                                <goals>
+                                    <goal>native-image</goal>
+                                </goals>
+                                <configuration>
+                                    <enableServer>false</enableServer>
+                                    <cleanupServer>true</cleanupServer>
+                                    <disableReports>true</disableReports>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/examples/file-split-log-xml/src/main/java/org/acme/filereader/DummyClass.java b/examples/file-split-log-xml/src/main/java/org/acme/filereader/DummyClass.java
new file mode 100644
index 0000000..0eef945
--- /dev/null
+++ b/examples/file-split-log-xml/src/main/java/org/acme/filereader/DummyClass.java
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.acme.filereader;
+
+public class DummyClass {
+}
diff --git a/examples/file-split-log-xml/src/main/java/org/acme/filereader/package-info.java b/examples/file-split-log-xml/src/main/java/org/acme/filereader/package-info.java
new file mode 100644
index 0000000..5f81d0c
--- /dev/null
+++ b/examples/file-split-log-xml/src/main/java/org/acme/filereader/package-info.java
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.acme.filereader;
+
+// Added to avoid quarkus-maven-plugin warning about empty source tree
diff --git a/examples/file-split-log-xml/src/main/resources/application.properties b/examples/file-split-log-xml/src/main/resources/application.properties
new file mode 100644
index 0000000..0ded378
--- /dev/null
+++ b/examples/file-split-log-xml/src/main/resources/application.properties
@@ -0,0 +1,40 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+#
+# Quarkus
+#
+quarkus.log.file.enable = false
+quarkus.ssl.native=true
+
+quarkus.log.category."org.apache.camel.main".level = DEBUG
+
+#
+# Camel
+#
+camel.context.name = camel-quarkus-xml
+
+#
+# Camel Main
+#
+camel.main.xml-routes = file:src/main/resources/routes/camel-routes.xml
+camel.properties.prefixToken={{
+camel.properties.suffixToken=}}
+
+
+camel.file.route.folder=src/main/resources/file
+camel.file.repeat.interval=30s
+camel.file.split.parallel=false
\ No newline at end of file
diff --git a/examples/file-split-log-xml/src/main/resources/file/customerlist .csv b/examples/file-split-log-xml/src/main/resources/file/customerlist .csv
new file mode 100644
index 0000000..8db6efa
--- /dev/null
+++ b/examples/file-split-log-xml/src/main/resources/file/customerlist .csv
@@ -0,0 +1,1001 @@
+name,surname
+Michael,SMITH
+James,JOHNSON
+John,WILLIAMS
+Robert,BROWN
+David,JONES
+William,MILLER
+Mary,DAVIS
+Christopher,GARCIA
+Joseph,RODRIGUEZ
+Richard,WILSON
+Daniel,MARTINEZ
+Thomas,ANDERSON
+Matthew,TAYLOR
+Jennifer,THOMAS
+Charles,HERNANDEZ
+Anthony,MOORE
+Patricia,MARTIN
+Linda,JACKSON
+Mark,THOMPSON
+Elizabeth,WHITE
+Joshua,LOPEZ
+Steven,LEE
+Andrew,GONZALEZ
+Kevin,HARRIS
+Brian,CLARK
+Barbara,LEWIS
+Jessica,ROBINSON
+Jason,WALKER
+Susan,PEREZ
+Timothy,HALL
+Paul,YOUNG
+Kenneth,ALLEN
+Lisa,SANCHEZ
+Ryan,WRIGHT
+Sarah,KING
+Karen,SCOTT
+Jeffrey,GREEN
+Donald,BAKER
+Ashley,ADAMS
+Eric,NELSON
+Jacob,HILL
+Nicholas,RAMIREZ
+Jonathan,CAMPBELL
+Ronald,MITCHELL
+Michelle,ROBERTS
+Kimberly,CARTER
+Nancy,PHILLIPS
+Justin,EVANS
+Sandra,TURNER
+Amanda,TORRES
+Brandon,PARKER
+Stephanie,COLLINS
+Emily,EDWARDS
+Melissa,STEWART
+Gary,FLORES
+Edward,MORRIS
+Stephen,NGUYEN
+Scott,MURPHY
+George,RIVERA
+Donna,COOK
+Jose,ROGERS
+Rebecca,MORGAN
+Deborah,PETERSON
+Laura,COOPER
+Cynthia,REED
+Carol,BAILEY
+Amy,BELL
+Margaret,GOMEZ
+Gregory,KELLY
+Sharon,HOWARD
+Larry,WARD
+Angela,COX
+Maria,DIAZ
+Alexander,RICHARDSON
+Benjamin,WOOD
+Nicole,WATSON
+Kathleen,BROOKS
+Patrick,BENNETT
+Samantha,GRAY
+Tyler,JAMES
+Samuel,REYES
+Betty,CRUZ
+Brenda,HUGHES
+Pamela,PRICE
+Aaron,MYERS
+Kelly,LONG
+Heather,FOSTER
+Rachel,SANDERS
+Adam,ROSS
+Christine,MORALES
+Zachary,POWELL
+Debra,SULLIVAN
+Katherine,RUSSELL
+Dennis,ORTIZ
+Nathan,JENKINS
+Christina,GUTIERREZ
+Julie,PERRY
+Jordan,BUTLER
+Kyle,BARNES
+Anna,FISHER
+Michael,HENDERSON
+James,COLEMAN
+John,SIMMONS
+Robert,PATTERSON
+David,JORDAN
+William,REYNOLDS
+Mary,HAMILTON
+Christopher,GRAHAM
+Joseph,KIM
+Richard,GONZALES
+Daniel,ALEXANDER
+Thomas,RAMOS
+Matthew,WALLACE
+Jennifer,GRIFFIN
+Charles,WEST
+Anthony,COLE
+Patricia,HAYES
+Linda,CHAVEZ
+Mark,GIBSON
+Elizabeth,BRYANT
+Joshua,ELLIS
+Steven,STEVENS
+Andrew,MURRAY
+Kevin,FORD
+Brian,MARSHALL
+Barbara,OWENS
+Jessica,MCDONALD
+Jason,HARRISON
+Susan,RUIZ
+Timothy,KENNEDY
+Paul,WELLS
+Kenneth,ALVAREZ
+Lisa,WOODS
+Ryan,MENDOZA
+Sarah,CASTILLO
+Karen,OLSON
+Jeffrey,WEBB
+Donald,WASHINGTON
+Ashley,TUCKER
+Eric,FREEMAN
+Jacob,BURNS
+Nicholas,HENRY
+Jonathan,VASQUEZ
+Ronald,SNYDER
+Michelle,SIMPSON
+Kimberly,CRAWFORD
+Nancy,JIMENEZ
+Justin,PORTER
+Sandra,MASON
+Amanda,SHAW
+Brandon,GORDON
+Stephanie,WAGNER
+Emily,HUNTER
+Melissa,ROMERO
+Gary,HICKS
+Edward,DIXON
+Stephen,HUNT
+Scott,PALMER
+George,ROBERTSON
+Donna,BLACK
+Jose,HOLMES
+Rebecca,STONE
+Deborah,MEYER
+Laura,BOYD
+Cynthia,MILLS
+Carol,WARREN
+Amy,FOX
+Margaret,ROSE
+Gregory,RICE
+Sharon,MORENO
+Larry,SCHMIDT
+Angela,PATEL
+Maria,FERGUSON
+Alexander,NICHOLS
+Benjamin,HERRERA
+Nicole,MEDINA
+Kathleen,RYAN
+Patrick,FERNANDEZ
+Samantha,WEAVER
+Tyler,DANIELS
+Samuel,STEPHENS
+Betty,GARDNER
+Brenda,PAYNE
+Pamela,KELLEY
+Aaron,DUNN
+Kelly,PIERCE
+Heather,ARNOLD
+Rachel,TRAN
+Adam,SPENCER
+Christine,PETERS
+Zachary,HAWKINS
+Debra,GRANT
+Katherine,HANSEN
+Dennis,CASTRO
+Nathan,HOFFMAN
+Christina,HART
+Julie,ELLIOTT
+Jordan,CUNNINGHAM
+Kyle,KNIGHT
+Anna,BRADLEY
+Michael,CARROLL
+James,HUDSON
+John,DUNCAN
+Robert,ARMSTRONG
+David,BERRY
+William,ANDREWS
+Mary,JOHNSTON
+Christopher,RAY
+Joseph,LANE
+Richard,RILEY
+Daniel,CARPENTER
+Thomas,PERKINS
+Matthew,AGUILAR
+Jennifer,SILVA
+Charles,RICHARDS
+Anthony,WILLIS
+Patricia,MATTHEWS
+Linda,CHAPMAN
+Mark,LAWRENCE
+Elizabeth,GARZA
+Joshua,VARGAS
+Steven,WATKINS
+Andrew,WHEELER
+Kevin,LARSON
+Brian,CARLSON
+Barbara,HARPER
+Jessica,GEORGE
+Jason,GREENE
+Susan,BURKE
+Timothy,GUZMAN
+Paul,MORRISON
+Kenneth,MUNOZ
+Lisa,JACOBS
+Ryan,OBRIEN
+Sarah,LAWSON
+Karen,FRANKLIN
+Jeffrey,LYNCH
+Donald,BISHOP
+Ashley,CARR
+Eric,SALAZAR
+Jacob,AUSTIN
+Nicholas,MENDEZ
+Jonathan,GILBERT
+Ronald,JENSEN
+Michelle,WILLIAMSON
+Kimberly,MONTGOMERY
+Nancy,HARVEY
+Justin,OLIVER
+Sandra,HOWELL
+Amanda,DEAN
+Brandon,HANSON
+Stephanie,WEBER
+Emily,GARRETT
+Melissa,SIMS
+Gary,BURTON
+Edward,FULLER
+Stephen,SOTO
+Scott,MCCOY
+George,WELCH
+Donna,CHEN
+Jose,SCHULTZ
+Rebecca,WALTERS
+Deborah,REID
+Laura,FIELDS
+Cynthia,WALSH
+Carol,LITTLE
+Amy,FOWLER
+Margaret,BOWMAN
+Gregory,DAVIDSON
+Sharon,MAY
+Larry,DAY
+Angela,SCHNEIDER
+Maria,NEWMAN
+Alexander,BREWER
+Benjamin,LUCAS
+Nicole,HOLLAND
+Kathleen,WONG
+Patrick,BANKS
+Samantha,SANTOS
+Tyler,CURTIS
+Samuel,PEARSON
+Betty,DELGADO
+Brenda,VALDEZ
+Pamela,PENA
+Aaron,RIOS
+Kelly,DOUGLAS
+Heather,SANDOVAL
+Rachel,BARRETT
+Adam,HOPKINS
+Christine,KELLER
+Zachary,GUERRERO
+Debra,STANLEY
+Katherine,BATES
+Dennis,ALVARADO
+Nathan,BECK
+Christina,ORTEGA
+Julie,WADE
+Jordan,ESTRADA
+Kyle,CONTRERAS
+Anna,BARNETT
+Michael,CALDWELL
+James,SANTIAGO
+John,LAMBERT
+Robert,POWERS
+David,CHAMBERS
+William,NUNEZ
+Mary,CRAIG
+Christopher,LEONARD
+Joseph,LOWE
+Richard,RHODES
+Daniel,BYRD
+Thomas,GREGORY
+Matthew,SHELTON
+Jennifer,FRAZIER
+Charles,BECKER
+Anthony,MALDONADO
+Patricia,FLEMING
+Linda,VEGA
+Mark,SUTTON
+Elizabeth,COHEN
+Joshua,JENNINGS
+Steven,PARKS
+Andrew,MCDANIEL
+Kevin,WATTS
+Brian,BARKER
+Barbara,NORRIS
+Jessica,VAUGHN
+Jason,VAZQUEZ
+Susan,HOLT
+Timothy,SCHWARTZ
+Paul,STEELE
+Kenneth,BENSON
+Lisa,NEAL
+Ryan,DOMINGUEZ
+Sarah,HORTON
+Karen,TERRY
+Jeffrey,WOLFE
+Donald,HALE
+Ashley,LYONS
+Eric,GRAVES
+Jacob,HAYNES
+Nicholas,MILES
+Jonathan,PARK
+Ronald,WARNER
+Michelle,PADILLA
+Kimberly,BUSH
+Nancy,THORNTON
+Justin,MCCARTHY
+Sandra,MANN
+Amanda,ZIMMERMAN
+Brandon,ERICKSON
+Stephanie,FLETCHER
+Emily,MCKINNEY
+Melissa,PAGE
+Gary,DAWSON
+Edward,JOSEPH
+Stephen,MARQUEZ
+Scott,REEVES
+George,KLEIN
+Donna,ESPINOZA
+Jose,BALDWIN
+Rebecca,MORAN
+Deborah,LOVE
+Laura,ROBBINS
+Cynthia,HIGGINS
+Carol,BALL
+Amy,CORTEZ
+Margaret,LE
+Gregory,GRIFFITH
+Sharon,BOWEN
+Larry,SHARP
+Angela,CUMMINGS
+Maria,RAMSEY
+Alexander,HARDY
+Benjamin,SWANSON
+Nicole,BARBER
+Kathleen,ACOSTA
+Patrick,LUNA
+Samantha,CHANDLER
+Tyler,BLAIR
+Samuel,DANIEL
+Betty,CROSS
+Brenda,SIMON
+Pamela,DENNIS
+Aaron,OCONNOR
+Kelly,QUINN
+Heather,GROSS
+Rachel,NAVARRO
+Adam,MOSS
+Christine,FITZGERALD
+Zachary,DOYLE
+Debra,MCLAUGHLIN
+Katherine,ROJAS
+Dennis,RODGERS
+Nathan,STEVENSON
+Christina,SINGH
+Julie,YANG
+Jordan,FIGUEROA
+Kyle,HARMON
+Anna,NEWTON
+Michael,PAUL
+James,MANNING
+John,GARNER
+Robert,MCGEE
+David,REESE
+William,FRANCIS
+Mary,BURGESS
+Christopher,ADKINS
+Joseph,GOODMAN
+Richard,CURRY
+Daniel,BRADY
+Thomas,CHRISTENSEN
+Matthew,POTTER
+Jennifer,WALTON
+Charles,GOODWIN
+Anthony,MULLINS
+Patricia,MOLINA
+Linda,WEBSTER
+Mark,FISCHER
+Elizabeth,CAMPOS
+Joshua,AVILA
+Steven,SHERMAN
+Andrew,TODD
+Kevin,CHANG
+Brian,BLAKE
+Barbara,MALONE
+Jessica,WOLF
+Jason,HODGES
+Susan,JUAREZ
+Timothy,GILL
+Paul,FARMER
+Kenneth,HINES
+Lisa,GALLAGHER
+Ryan,DURAN
+Sarah,HUBBARD
+Karen,CANNON
+Jeffrey,MIRANDA
+Donald,WANG
+Ashley,SAUNDERS
+Eric,TATE
+Jacob,MACK
+Nicholas,HAMMOND
+Jonathan,CARRILLO
+Ronald,TOWNSEND
+Michelle,WISE
+Kimberly,INGRAM
+Nancy,BARTON
+Justin,MEJIA
+Sandra,AYALA
+Amanda,SCHROEDER
+Brandon,HAMPTON
+Stephanie,ROWE
+Emily,PARSONS
+Melissa,FRANK
+Gary,WATERS
+Edward,STRICKLAND
+Stephen,OSBORNE
+Scott,MAXWELL
+George,CHAN
+Donna,DELEON
+Jose,NORMAN
+Rebecca,HARRINGTON
+Deborah,CASEY
+Laura,PATTON
+Cynthia,LOGAN
+Carol,BOWERS
+Amy,MUELLER
+Margaret,GLOVER
+Gregory,FLOYD
+Sharon,HARTMAN
+Larry,BUCHANAN
+Angela,COBB
+Maria,FRENCH
+Alexander,KRAMER
+Benjamin,MCCORMICK
+Nicole,CLARKE
+Kathleen,TYLER
+Patrick,GIBBS
+Samantha,MOODY
+Tyler,CONNER
+Samuel,SPARKS
+Betty,MCGUIRE
+Brenda,LEON
+Pamela,BAUER
+Aaron,NORTON
+Kelly,POPE
+Heather,FLYNN
+Rachel,HOGAN
+Adam,ROBLES
+Christine,SALINAS
+Zachary,YATES
+Debra,LINDSEY
+Katherine,LLOYD
+Dennis,MARSH
+Nathan,MCBRIDE
+Christina,OWEN
+Julie,SOLIS
+Jordan,PHAM
+Kyle,LANG
+Anna,PRATT
+Michael,LARA
+James,BROCK
+John,BALLARD
+Robert,TRUJILLO
+David,SHAFFER
+William,DRAKE
+Mary,ROMAN
+Christopher,AGUIRRE
+Joseph,MORTON
+Richard,STOKES
+Daniel,LAMB
+Thomas,PACHECO
+Matthew,PATRICK
+Jennifer,COCHRAN
+Charles,SHEPHERD
+Anthony,CAIN
+Patricia,BURNETT
+Linda,HESS
+Mark,LI
+Elizabeth,CERVANTES
+Joshua,OLSEN
+Steven,BRIGGS
+Andrew,OCHOA
+Kevin,CABRERA
+Brian,VELASQUEZ
+Barbara,MONTOYA
+Jessica,ROTH
+Jason,MEYERS
+Susan,CARDENAS
+Timothy,FUENTES
+Paul,WEISS
+Kenneth,HOOVER
+Lisa,WILKINS
+Ryan,NICHOLSON
+Sarah,UNDERWOOD
+Karen,SHORT
+Jeffrey,CARSON
+Donald,MORROW
+Ashley,COLON
+Eric,HOLLOWAY
+Jacob,SUMMERS
+Nicholas,BRYAN
+Jonathan,PETERSEN
+Ronald,MCKENZIE
+Michelle,SERRANO
+Kimberly,WILCOX
+Nancy,CAREY
+Justin,CLAYTON
+Sandra,POOLE
+Amanda,CALDERON
+Brandon,GALLEGOS
+Stephanie,GREER
+Emily,RIVAS
+Melissa,GUERRA
+Gary,DECKER
+Edward,COLLIER
+Stephen,WALL
+Scott,WHITAKER
+George,BASS
+Donna,FLOWERS
+Jose,DAVENPORT
+Rebecca,CONLEY
+Deborah,HOUSTON
+Laura,HUFF
+Cynthia,COPELAND
+Carol,HOOD
+Amy,MONROE
+Margaret,MASSEY
+Gregory,ROBERSON
+Sharon,COMBS
+Larry,FRANCO
+Angela,LARSEN
+Maria,PITTMAN
+Alexander,RANDALL
+Benjamin,SKINNER
+Nicole,WILKINSON
+Kathleen,KIRBY
+Patrick,CAMERON
+Samantha,BRIDGES
+Tyler,ANTHONY
+Samuel,RICHARD
+Betty,KIRK
+Brenda,BRUCE
+Pamela,SINGLETON
+Aaron,MATHIS
+Kelly,BRADFORD
+Heather,BOONE
+Rachel,ABBOTT
+Adam,CHARLES
+Christine,ALLISON
+Zachary,SWEENEY
+Debra,ATKINSON
+Katherine,HORN
+Dennis,JEFFERSON
+Nathan,ROSALES
+Christina,YORK
+Julie,CHRISTIAN
+Jordan,PHELPS
+Kyle,FARRELL
+Anna,CASTANEDA
+Michael,NASH
+James,DICKERSON
+John,BOND
+Robert,WYATT
+David,FOLEY
+William,CHASE
+Mary,GATES
+Christopher,VINCENT
+Joseph,MATHEWS
+Richard,HODGE
+Daniel,GARRISON
+Thomas,TREVINO
+Matthew,VILLARREAL
+Jennifer,HEATH
+Charles,DALTON
+Anthony,VALENCIA
+Patricia,CALLAHAN
+Linda,HENSLEY
+Mark,ATKINS
+Elizabeth,HUFFMAN
+Joshua,ROY
+Steven,BOYER
+Andrew,SHIELDS
+Kevin,LIN
+Brian,HANCOCK
+Barbara,GRIMES
+Jessica,GLENN
+Jason,CLINE
+Susan,DELACRUZ
+Timothy,CAMACHO
+Paul,DILLON
+Kenneth,PARRISH
+Lisa,ONEILL
+Ryan,MELTON
+Sarah,BOOTH
+Karen,KANE
+Jeffrey,BERG
+Donald,HARRELL
+Ashley,PITTS
+Eric,SAVAGE
+Jacob,WIGGINS
+Nicholas,BRENNAN
+Jonathan,SALAS
+Ronald,MARKS
+Michelle,RUSSO
+Kimberly,SAWYER
+Nancy,BAXTER
+Justin,GOLDEN
+Sandra,HUTCHINSON
+Amanda,LIU
+Brandon,WALTER
+Stephanie,MCDOWELL
+Emily,WILEY
+Melissa,RICH
+Gary,HUMPHREY
+Edward,JOHNS
+Stephen,KOCH
+Scott,SUAREZ
+George,HOBBS
+Donna,BEARD
+Jose,GILMORE
+Rebecca,IBARRA
+Deborah,KEITH
+Laura,MACIAS
+Cynthia,KHAN
+Carol,ANDRADE
+Amy,WARE
+Margaret,STEPHENSON
+Gregory,HENSON
+Sharon,WILKERSON
+Larry,DYER
+Angela,MCCLURE
+Maria,BLACKWELL
+Alexander,MERCADO
+Benjamin,TANNER
+Nicole,EATON
+Kathleen,CLAY
+Patrick,BARRON
+Samantha,BEASLEY
+Tyler,ONEAL
+Samuel,PRESTON
+Betty,SMALL
+Brenda,WU
+Pamela,ZAMORA
+Aaron,MACDONALD
+Kelly,VANCE
+Heather,SNOW
+Rachel,MCCLAIN
+Adam,STAFFORD
+Christine,OROZCO
+Zachary,BARRY
+Debra,ENGLISH
+Katherine,SHANNON
+Dennis,KLINE
+Nathan,JACOBSON
+Christina,WOODARD
+Julie,HUANG
+Jordan,KEMP
+Kyle,MOSLEY
+Anna,PRINCE
+Michael,MERRITT
+James,HURST
+John,VILLANUEVA
+Robert,ROACH
+David,NOLAN
+William,LAM
+Mary,YODER
+Christopher,MCCULLOUGH
+Joseph,LESTER
+Richard,SANTANA
+Daniel,VALENZUELA
+Thomas,WINTERS
+Matthew,BARRERA
+Jennifer,LEACH
+Charles,ORR
+Anthony,BERGER
+Patricia,MCKEE
+Linda,STRONG
+Mark,CONWAY
+Elizabeth,STEIN
+Joshua,WHITEHEAD
+Steven,BULLOCK
+Andrew,ESCOBAR
+Kevin,KNOX
+Brian,MEADOWS
+Barbara,SOLOMON
+Jessica,VELEZ
+Jason,ODONNELL
+Susan,KERR
+Timothy,STOUT
+Paul,BLANKENSHIP
+Kenneth,BROWNING
+Lisa,KENT
+Ryan,LOZANO
+Sarah,BARTLETT
+Karen,PRUITT
+Jeffrey,BUCK
+Donald,BARR
+Ashley,GAINES
+Eric,DURHAM
+Jacob,GENTRY
+Nicholas,MCINTYRE
+Jonathan,SLOAN
+Ronald,ROCHA
+Michelle,MELENDEZ
+Kimberly,HERMAN
+Nancy,SEXTON
+Justin,MOON
+Sandra,HENDRICKS
+Amanda,RANGEL
+Brandon,STARK
+Stephanie,LOWERY
+Emily,HARDIN
+Melissa,HULL
+Gary,SELLERS
+Edward,ELLISON
+Stephen,CALHOUN
+Scott,GILLESPIE
+George,MORA
+Donna,KNAPP
+Jose,MCCALL
+Rebecca,MORSE
+Deborah,DORSEY
+Laura,WEEKS
+Cynthia,NIELSEN
+Carol,LIVINGSTON
+Amy,LEBLANC
+Margaret,MCLEAN
+Gregory,BRADSHAW
+Sharon,GLASS
+Larry,MIDDLETON
+Angela,BUCKLEY
+Maria,SCHAEFER
+Alexander,FROST
+Benjamin,HOWE
+Nicole,HOUSE
+Kathleen,MCINTOSH
+Patrick,HO
+Samantha,PENNINGTON
+Tyler,REILLY
+Samuel,HEBERT
+Betty,MCFARLAND
+Brenda,HICKMAN
+Pamela,NOBLE
+Aaron,SPEARS
+Kelly,CONRAD
+Heather,ARIAS
+Rachel,GALVAN
+Adam,VELAZQUEZ
+Christine,HUYNH
+Zachary,FREDERICK
+Debra,RANDOLPH
+Katherine,CANTU
+Dennis,FITZPATRICK
+Nathan,MAHONEY
+Christina,PECK
+Julie,VILLA
+Jordan,MICHAEL
+Kyle,DONOVAN
+Anna,MCCONNELL
+Michael,WALLS
+James,BOYLE
+John,MAYER
+Robert,ZUNIGA
+David,GILES
+William,PINEDA
+Mary,PACE
+Christopher,HURLEY
+Joseph,MAYS
+Richard,MCMILLAN
+Daniel,CROSBY
+Thomas,AYERS
+Matthew,CASE
+Jennifer,BENTLEY
+Charles,SHEPARD
+Anthony,EVERETT
+Patricia,PUGH
+Linda,DAVID
+Mark,MCMAHON
+Elizabeth,DUNLAP
+Joshua,BENDER
+Steven,HAHN
+Andrew,HARDING
+Kevin,ACEVEDO
+Brian,RAYMOND
+Barbara,BLACKBURN
+Jessica,DUFFY
+Jason,LANDRY
+Susan,DOUGHERTY
+Timothy,BAUTISTA
+Paul,SHAH
+Kenneth,POTTS
+Lisa,ARROYO
+Ryan,VALENTINE
+Sarah,MEZA
+Karen,GOULD
+Jeffrey,VAUGHAN
+Donald,FRY
+Ashley,RUSH
+Eric,AVERY
+Jacob,HERRING
+Nicholas,DODSON
+Jonathan,CLEMENTS
+Ronald,SAMPSON
+Michelle,TAPIA
+Kimberly,BEAN
+Nancy,LYNN
+Justin,CRANE
+Sandra,FARLEY
+Amanda,CISNEROS
+Brandon,BENTON
+Stephanie,ASHLEY
+Emily,MCKAY
+Melissa,FINLEY
+Gary,BEST
+Edward,BLEVINS
+Stephen,FRIEDMAN
+Scott,MOSES
+George,SOSA
+Donna,BLANCHARD
+Jose,HUBER
+Rebecca,FRYE
+Deborah,KRUEGER
+Laura,BERNARD
+Cynthia,ROSARIO
+Carol,RUBIO
+Amy,MULLEN
+Margaret,BENJAMIN
+Gregory,HALEY
+Sharon,CHUNG
+Larry,MOYER
+Angela,CHOI
+Maria,HORNE
+Alexander,YU
+Benjamin,WOODWARD
+Nicole,ALI
+Kathleen,NIXON
+Patrick,HAYDEN
+Samantha,RIVERS
+Tyler,ESTES
+Samuel,MCCARTY
+Betty,RICHMOND
+Brenda,STUART
+Pamela,MAYNARD
+Aaron,BRANDT
+Kelly,OCONNELL
+Heather,HANNA
+Rachel,SANFORD
+Adam,SHEPPARD
+Christine,CHURCH
+Zachary,BURCH
+Debra,LEVY
+Katherine,RASMUSSEN
+Dennis,COFFEY
+Nathan,PONCE
+Christina,FAULKNER
+Julie,DONALDSON
+Jordan,SCHMITT
+Kyle,NOVAK
+Anna,COSTA
+Michael,MONTES
+James,BOOKER
+John,CORDOVA
+Robert,WALLER
+David,ARELLANO
+William,MADDOX
+Mary,MATA
+Christopher,BONILLA
+Joseph,STANTON
+Richard,COMPTON
+Daniel,KAUFMAN
+Thomas,DUDLEY
+Matthew,MCPHERSON
+Jennifer,BELTRAN
+Charles,DICKSON
+Anthony,MCCANN
+Patricia,VILLEGAS
+Linda,PROCTOR
+Mark,HESTER
+Elizabeth,CANTRELL
+Joshua,DAUGHERTY
+Steven,CHERRY
+Andrew,BRAY
+Kevin,DAVILA
+Brian,ROWLAND
+Barbara,LEVINE
+Jessica,MADDEN
+Jason,SPENCE
+Susan,GOOD
+Timothy,IRWIN
+Paul,WERNER
+Kenneth,KRAUSE
+Lisa,PETTY
+Ryan,WHITNEY
+Sarah,BAIRD
+Karen,HOOPER
+Jeffrey,POLLARD
+Donald,ZAVALA
+Ashley,JARVIS
+Eric,HOLDEN
+Jacob,HAAS
+Nicholas,HENDRIX
+Jonathan,MCGRATH
+Ronald,BIRD
+Michelle,LUCERO
+Kimberly,TERRELL
+Nancy,RIGGS
+Justin,JOYCE
+Sandra,MERCER
+Amanda,ROLLINS
+Brandon,GALLOWAY
+Stephanie,DUKE
+Emily,ODOM
+Melissa,ANDERSEN
+Gary,DOWNS
+Edward,HATFIELD
+Stephen,BENITEZ
+Scott,ARCHER
+George,HUERTA
+Donna,TRAVIS
+Jose,MCNEIL
+Rebecca,HINTON
+Deborah,ZHANG
+Laura,HAYS
+Cynthia,MAYO
+Carol,FRITZ
+Amy,BRANCH
+Margaret,MOONEY
+Gregory,EWING
+Sharon,RITTER
+Larry,ESPARZA
+Angela,FREY
+Maria,BRAUN
+Alexander,GAY
+Benjamin,RIDDLE
+Nicole,HANEY
+Kathleen,KAISER
+Patrick,HOLDER
+Samantha,CHANEY
+Tyler,MCKNIGHT
+Samuel,GAMBLE
+Betty,VANG
+Brenda,COOLEY
+Pamela,CARNEY
+Aaron,COWAN
+Kelly,FORBES
+Heather,FERRELL
+Rachel,DAVIES
+Adam,BARAJAS
+Christine,SHEA
+Zachary,OSBORN
+Debra,BRIGHT
+Katherine,CUEVAS
+Dennis,BOLTON
+Nathan,MURILLO
+Christina,LUTZ
+Julie,DUARTE
+Jordan,KIDD
+Kyle,KEY
+Anna,COOKE
diff --git a/examples/file-split-log-xml/src/main/resources/routes/camel-routes.xml b/examples/file-split-log-xml/src/main/resources/routes/camel-routes.xml
new file mode 100644
index 0000000..222e4b3
--- /dev/null
+++ b/examples/file-split-log-xml/src/main/resources/routes/camel-routes.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+
+<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns="http://camel.apache.org/schema/spring"
+        xsi:schemaLocation="
+            http://camel.apache.org/schema/spring
+            http://camel.apache.org/schema/spring/camel-spring.xsd">
+    <route id="file-xml-route">
+        <from uri="file:{{camel.file.route.folder}}?noop=true&amp;delay={{camel.file.repeat.interval}}&amp;idempotent=false&amp;initialDelay=5s"/>
+        <split parallelProcessing="{{camel.file.split.parallel}}">
+            <tokenize token="\n"/>
+            <log message="line ${headers.CamelSplitIndex} contains: ${body}"/>
+            <split>
+                <tokenize token=","/>
+                <choice>
+                    <when>
+                        <simple>${headers.CamelSplitIndex} == 0</simple>
+                        <log message="Name is: ${body}"/>
+                    </when>
+                    <otherwise>
+                        <log message="Surname is: ${body}"/>
+                    </otherwise>
+                </choice>
+            </split>
+        </split>
+    </route>
+
+</routes>
\ No newline at end of file
