下面列出了怎么用org.springframework.util.IdGenerator的API类实例代码及写法,或者点击链接到github查看源代码。
public void setImmutable() {
if (!this.mutable) {
return;
}
if (getId() == null) {
IdGenerator idGenerator = (MessageHeaderAccessor.this.idGenerator != null ?
MessageHeaderAccessor.this.idGenerator : MessageHeaders.getIdGenerator());
UUID id = idGenerator.generateId();
if (id != MessageHeaders.ID_VALUE_NONE) {
getRawHeaders().put(ID, id);
}
}
if (getTimestamp() == null) {
if (MessageHeaderAccessor.this.enableTimestamp) {
getRawHeaders().put(TIMESTAMP, System.currentTimeMillis());
}
}
this.mutable = false;
}
public void setImmutable() {
if (!this.mutable) {
return;
}
if (getId() == null) {
IdGenerator idGenerator = (MessageHeaderAccessor.this.idGenerator != null ?
MessageHeaderAccessor.this.idGenerator : MessageHeaders.getIdGenerator());
UUID id = idGenerator.generateId();
if (id != MessageHeaders.ID_VALUE_NONE) {
getRawHeaders().put(ID, id);
}
}
if (getTimestamp() == null) {
if (MessageHeaderAccessor.this.enableTimestamp) {
getRawHeaders().put(TIMESTAMP, System.currentTimeMillis());
}
}
this.mutable = false;
}
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());
}
}
}
@Override
public void initHeaders(MessageHeaderAccessor headerAccessor) {
IdGenerator idGenerator = getIdGenerator();
if (idGenerator != null) {
headerAccessor.setIdGenerator(idGenerator);
}
headerAccessor.setEnableTimestamp(isEnableTimestamp());
}
@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());
}
@Override
public void initHeaders(MessageHeaderAccessor headerAccessor) {
IdGenerator idGenerator = getIdGenerator();
if (idGenerator != null) {
headerAccessor.setIdGenerator(idGenerator);
}
headerAccessor.setEnableTimestamp(isEnableTimestamp());
}
@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());
}
@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());
}
@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());
}
@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());
}
protected static IdGenerator getIdGenerator() {
IdGenerator generator = idGenerator;
return (generator != null ? generator : defaultIdGenerator);
}
/**
* Return the configured {@code IdGenerator}, if any.
*/
@Nullable
public IdGenerator getIdGenerator() {
return this.idGenerator;
}
protected static IdGenerator getIdGenerator() {
IdGenerator generator = idGenerator;
return (generator != null ? generator : defaultIdGenerator);
}
/**
* Return the configured {@code IdGenerator}, if any.
*/
@Nullable
public IdGenerator getIdGenerator() {
return this.idGenerator;
}
protected static IdGenerator getIdGenerator() {
return (idGenerator != null ? idGenerator : defaultIdGenerator);
}
/**
* Return the configured {@code IdGenerator}, if any.
*/
public IdGenerator getIdGenerator() {
return this.idGenerator;
}
public CompositeRouteDefinitionLocator(Flux<RouteDefinitionLocator> delegates,
IdGenerator idGenerator) {
this.delegates = delegates;
this.idGenerator = idGenerator;
}
/**
* 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 ids generated at all, see {@link #setDisableIdGeneration()}.
*/
public void setIdGenerator(@Nullable IdGenerator idGenerator) {
this.idGenerator = idGenerator;
}
/**
* 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;
}
/**
* 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 ids generated at all, see {@link #setDisableIdGeneration()}.
*/
public void setIdGenerator(@Nullable IdGenerator idGenerator) {
this.idGenerator = idGenerator;
}
/**
* 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;
}
/**
* 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;
}
/**
* 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;
}