Example usage for org.springframework.integration.core TimeBasedUUIDGenerator generateId

List of usage examples for org.springframework.integration.core TimeBasedUUIDGenerator generateId

Introduction

In this page you can find the example usage for org.springframework.integration.core TimeBasedUUIDGenerator generateId.

Prototype

static UUID generateId() 

Source Link

Document

Will generate unique time based UUID where the next UUID is always greater then the previous.

Usage

From source file:org.springframework.integration.core.MessageIdGenerationTests.java

@Test
@Ignore/*from   w w  w.  ja  va  2  s .co m*/
public void performanceTest() {
    int times = 1000000;
    StopWatch watch = new StopWatch();
    watch.start();
    for (int i = 0; i < times; i++) {
        new GenericMessage<Integer>(0);
    }
    watch.stop();
    double defaultGeneratorElapsedTime = watch.getTotalTimeSeconds();

    Field idGeneratorField = ReflectionUtils.findField(MessageHeaders.class, "idGenerator");
    ReflectionUtils.makeAccessible(idGeneratorField);
    ReflectionUtils.setField(idGeneratorField, null, (IdGenerator) () -> TimeBasedUUIDGenerator.generateId());
    watch = new StopWatch();
    watch.start();
    for (int i = 0; i < times; i++) {
        new GenericMessage<Integer>(0);
    }
    watch.stop();
    double timebasedGeneratorElapsedTime = watch.getTotalTimeSeconds();

    logger.info("Generated " + times + " messages using default UUID generator " + "in "
            + defaultGeneratorElapsedTime + " seconds");
    logger.info("Generated " + times + " messages using Timebased UUID generator " + "in "
            + timebasedGeneratorElapsedTime + " seconds");

    logger.info("Time-based ID generator is " + defaultGeneratorElapsedTime / timebasedGeneratorElapsedTime
            + " times faster");
}