Starting with Camel 2.5, Camel supports 3rd party UUID generator(s). This is useful, if e.g. your messaging provider does not support UUID's with a length of 36 characters (like Websphere MQ). Another useful scenario is to use a simple counter for testing purpose. With this it is easier to correlate the exchanges in the log/debugger.

You only have to implement org.apache.camel.spi.UuidGenerator and tell Camel, that it should use your custom implementation:

Configuring from Java DSL

getContext().setUuidGenerator(new MyCustomUuidGenerator());

You should not change the UUID generator at runtime (it should only be set once)!

Configuring from Spring DSL

Camel will configure this UUID generator by doing a lookup in the Spring bean registry to find the bean of the type org.apache.camel.spi.UuidGenerator.

<bean id="activeMQUuidGenerator" class="org.apache.camel.impl.ActiveMQUuidGenerator" />

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <from uri="direct:start" />
    <to uri="mock:result" />

Provided implementations

Camel comes with three implementations of org.apache.camel.spi.UuidGenerator:

The default generator

From Camel 2.5 onwards the ActiveMQUuidGenerator is the default generator because its the fastest.
In Camel 2.4 or older the default is the JavaUuidGenerator generator.
In Camel 1.x the default generator is likewise the ActiveMQUuidGenerator.