UUID Generator
Camel supports third-party UUID generator(s).
A useful scenario is to use a simple counter for testing purpose. With this, it is easier to correlate the exchanges in the log/debugger.
Camel uses UUIDs in the exchange and message ids, and other unique ids it uses.
You only have to implement org.apache.camel.spi.UuidGenerator and tell Camel, that it should use your custom implementation:
Standard UUID Generators
Camel comes with the following implementations out of the box:
-
org.apache.camel.support.ClassicUuidGenerator: this is the classic Camel 2.x generator -
org.apache.camel.support.DefaultUuidGenerator: default generator (32 chars) optimized for Camel usage -
org.apache.camel.support.ShortUuidGenerator: Is 50% the size of the default (16 chars) optimized for Camel usage -
org.apache.camel.support.SimpleUuidGenerator: This implementation uses internally ajava.util.concurrent.atomic.AtomicLongand increases the ID for every call by one. Starting with 1 as the first id. -
org.apache.camel.support.RandomUuidGenerator: type 4 (pseudo randomly generated) UUID. The UUID is generated using a cryptographically strong pseudo random number generator.
You can configure which standard generator to use in application.properties:
camel.main.uuidGenerator = simple Configuring custom UuidGenerator
You can implement a custom UuidGenerator which you can set up in Camel to use:
-
Java
-
Spring XML
camelContext.setUuidGenerator(new MyCustomUuidGenerator()); <bean id="simpleUuid" class="org.apache.camel.support.SimpleUuidGenerator" />
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start" />
<to uri="mock:result" />
</route>
</camelContext>