== Spring Boot Example with the Dynamic Router EIP Component

=== Example Description

This example demonstrates how you might use the Dynamic Router EIP component in a Spring Boot application.  There are eleven routing participants that subscribe to a "numbers" channel of the Dynamic Router.  The message includes:

 1. A Predicate that examines the Exchange to determine if an Exchange is appropriate for the participant
 2. A destination URI where the Dynamic Router will send Exchanges that match a participant's Predicate

.Routing Participants
[cols="1,1,2"]
|===
|Name |Priority |Description

|Tens
|1
|Accepts multiples of 10.

|Nines
|2
|Accepts multiples of 9.

|Eights
|3
|Accepts multiples of 8.

|Sevens
|4
|Accepts multiples of 7.

|Sixes
|5
|Accepts multiples of 6.

|Fives
|6
|Accepts multiples of 5.

|Fours
|7
|Accepts multiples of 4.

|Threes
|8
|Accepts multiples of 3.

|Even
|9
|Accepts even numbers.

|Odd
|100
|Accepts odd numbers.

|Prime
|10
|Accepts prime numbers.
|===

Subscriptions with a lower priority value are evaluated earlier than subscriptions with a higher priority value.  For this reason, even though the number "10" is a multiple of 5, it will be consumed by the Tens participant.

All participants inherit from the link:src/main/java/org/apache/camel/example/springboot/numbers/participants/RoutingParticipant.java[RoutingParticipant] class, so they use a `@Consume` annotation to consume from their registered destination URI.  They add their received number to the link:src/main/java/org/apache/camel/example/springboot/numbers/service/ResultsService.java[ResultsService].

The link:src/main/java/org/apache/camel/example/springboot/numbers/service/NumbersService.java[NumbersService] sends all numbers from one to one million through the Dynamic Router.  After the messages have all been sent and processed, it instructs the ResultsService to print the results.  It will look something like this:

.Example Output
[source,bash]
----
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.2)

INFO 23130 --- [main] o.a.c.e.s.n.service.NumbersService : Subscribing participants
INFO 23130 --- [main] o.a.c.e.s.n.service.NumbersService : Sending messages to the dynamic router
INFO 23130 --- [main] o.a.c.e.s.n.service.NumbersService : Finished
Dynamic Router Spring Boot Numbers Example Results:
            odd:  150077
           even:  114287
         sevens:  101588
           tens:  100000
          nines:  100000
         eights:   88889
         primes:   78494
         threes:   76191
          fives:   76190
          sixes:   57142
          fours:   57142
Received count: 1000000 in 5709ms
----

=== Build

You can build this example using:

    $ mvn package

=== Run

You can run this example using:

    $ mvn spring-boot:run

If you want to run the Dynamic Router in "allMatch" receiver mode, run the example with an argument specifying that configuration property:

    $ mvn spring-boot:run -Dspring-boot.run.arguments="--camel.spring-boot.example.dynamic-router-eip.recipient-mode=allMatch"

The results should show up in less than ten seconds, and the program will immediately terminate.

=== Run Tests

You can run the tests using:

    $mvn test

There are some demos that run during the test phase.  Currently, there are three:

 1. AllRecipientsApplicationTest: the recipient mode is set to "allMatch" and 1,000,000 messages are sent through the router.
 2. FirstRecipientApplicationTest: the recipient mode is set to "firstMatch" and 1,000,000 messages are sent through the router.
 3. LessExpectedApplicationTest: the recipient mode is set to "firstMatch", and 10,000 messages are sent through the router.  The difference, here, is that the expected count is set to only 1,000 messages, so the results are calculated and displayed before all 10,000 messages are routed.

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/community/support/[let us know].

We also love contributors, so please
https://camel.apache.org/community/contributing/[get involved]

The Camel riders!
