Java 类org.springframework.util.IdGenerator 实例源码

项目:spring4-understanding    文件:MessageHeaderAccessor.java   
public void setIdAndTimestamp() {
    if (!isMutable()) {
        return;
    }
    if (getId() == null) {
        IdGenerator idGenerator = (MessageHeaderAccessor.this.idGenerator != null ?
                MessageHeaderAccessor.this.idGenerator : MessageHeaders.getIdGenerator());
        UUID id = idGenerator.generateId();
        if (id != null && id != MessageHeaders.ID_VALUE_NONE) {
            getRawHeaders().put(ID, id);
        }
    }
    if (getTimestamp() == null) {
        if (MessageHeaderAccessor.this.enableTimestamp) {
            getRawHeaders().put(TIMESTAMP, System.currentTimeMillis());
        }
    }
}
项目:spring4-understanding    文件:MessageBuilderTests.java   
@Test
public void testBuildMessageWithoutIdAndTimestamp() {
    MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
    headerAccessor.setIdGenerator(new IdGenerator() {
        @Override
        public UUID generateId() {
            return MessageHeaders.ID_VALUE_NONE;
        }
    });
    Message<?> message = MessageBuilder.createMessage("foo", headerAccessor.getMessageHeaders());
    assertNull(message.getHeaders().getId());
    assertNull(message.getHeaders().getTimestamp());
}
项目:spring4-understanding    文件:MessageHeaderAccessorTests.java   
@Test
public void idGeneratorCustom() {
    final UUID id = new UUID(0L, 23L);
    MessageHeaderAccessor accessor = new MessageHeaderAccessor();
    accessor.setIdGenerator(new IdGenerator() {
        @Override
        public UUID generateId() {
            return id;
        }
    });
    assertSame(id, accessor.getMessageHeaders().getId());
}
项目:spring4-understanding    文件:MessageHeaderAccessorTests.java   
@Test
public void idTimestampWithMutableHeaders() {
    MessageHeaderAccessor accessor = new MessageHeaderAccessor();
    accessor.setIdGenerator(new IdGenerator() {
        @Override
        public UUID generateId() {
            return MessageHeaders.ID_VALUE_NONE;
        }
    });
    accessor.setEnableTimestamp(false);
    accessor.setLeaveMutable(true);
    MessageHeaders headers = accessor.getMessageHeaders();

    assertNull(headers.getId());
    assertNull(headers.getTimestamp());

    final UUID id = new UUID(0L, 23L);
    accessor.setIdGenerator(new IdGenerator() {
        @Override
        public UUID generateId() {
            return id;
        }
    });
    accessor.setEnableTimestamp(true);
    accessor.setImmutable();

    assertSame(id, accessor.getMessageHeaders().getId());
    assertNotNull(headers.getTimestamp());
}
项目:spring4-understanding    文件:MessageHeaders.java   
protected static IdGenerator getIdGenerator() {
    return (idGenerator != null ? idGenerator : defaultIdGenerator);
}
项目:spring4-understanding    文件:IdTimestampMessageHeaderInitializer.java   
/**
 * Return the configured {@code IdGenerator}, if any.
 */
public IdGenerator getIdGenerator() {
    return this.idGenerator;
}
项目:spring4-understanding    文件:IdTimestampMessageHeaderInitializer.java   
/**
 * Configure the IdGenerator strategy to initialize {@code MessageHeaderAccessor}
 * instances with.
 * <p>By default this property is set to {@code null} in which case the default
 * IdGenerator of {@link org.springframework.messaging.MessageHeaders} is used.
 * <p>To have no id's generated at all, see {@link #setDisableIdGeneration()}.
 */
public void setIdGenerator(IdGenerator idGenerator) {
    this.idGenerator = idGenerator;
}
项目:spring4-understanding    文件:MessageHeaderAccessor.java   
/**
 * A package-private mechanism to configure the IdGenerator strategy to use.
 * <p>By default this property is not set in which case the default IdGenerator
 * in {@link org.springframework.messaging.MessageHeaders} is used.
 * @see IdTimestampMessageHeaderInitializer
 */
void setIdGenerator(IdGenerator idGenerator) {
    this.idGenerator = idGenerator;
}