= Tokenize a CSV file: A Camel Quarkus example
:cq-example-description: An example that shows how to define a Camel route in XML for tokenizing a CSV a file.

{cq-description}

In particular, it demonstrates the following:

1. Reading a file using Camel `file` component as a consumer
2. Splitting the file into rows
3. Splitting the rows into columns
4. Usage of properties defined in `application.properties` in a Camel endpoint URI
5. No Java code required or used, the route defined in XML can still be compiled to native code.

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
----

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
...

[io.quarkus] (main) camel-quarkus-examples-... started in 0.570s.
----

==== 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-... started in 0.011s.
...
----

== Feedback

Please report bugs and propose improvements via https://github.com/apache/camel-quarkus/issues[GitHub issues of Camel Quarkus] project.
