DSL: Polishing AMQP ICA Spec

Also add `messageHeaders()` to `MessageSourceSpec`.
This commit is contained in:
Gary Russell
2018-01-05 16:28:20 -05:00
committed by Artem Bilan
parent b5ec98f025
commit 422f651113
2 changed files with 26 additions and 4 deletions

View File

@@ -50,17 +50,17 @@ public class AmqpInboundPolledChannelAdapterSpec
return this;
}
public AmqpInboundPolledChannelAdapterSpec setPropertiesConverter(MessagePropertiesConverter propertiesConverter) {
public AmqpInboundPolledChannelAdapterSpec propertiesConverter(MessagePropertiesConverter propertiesConverter) {
this.target.setPropertiesConverter(propertiesConverter);
return this;
}
public AmqpInboundPolledChannelAdapterSpec setHeaderMapper(AmqpHeaderMapper headerMapper) {
public AmqpInboundPolledChannelAdapterSpec headerMapper(AmqpHeaderMapper headerMapper) {
this.target.setHeaderMapper(headerMapper);
return this;
}
public AmqpInboundPolledChannelAdapterSpec setMessageConverter(MessageConverter messageConverter) {
public AmqpInboundPolledChannelAdapterSpec messageConverter(MessageConverter messageConverter) {
this.target.setMessageConverter(messageConverter);
return this;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016 the original author or authors.
* Copyright 2016-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,12 @@
package org.springframework.integration.dsl;
import java.util.Map;
import org.springframework.expression.Expression;
import org.springframework.integration.core.MessageSource;
import org.springframework.integration.endpoint.AbstractMessageSource;
import org.springframework.util.Assert;
/**
* An {@link IntegrationComponentSpec} for {@link MessageSource}s.
@@ -25,9 +30,26 @@ import org.springframework.integration.core.MessageSource;
* @param <H> the target {@link MessageSource} implementation type.
*
* @author Artem Bilan
* @author Gary Russell
*
* @since 5.0
*/
public abstract class MessageSourceSpec<S extends MessageSourceSpec<S, H>, H extends MessageSource<?>>
extends IntegrationComponentSpec<S, H> {
/**
* Expressions with which to enhance headers.
* Only applies to subclasses of {@link AbstractMessageSource}.
* @param headerExpressions the header expressions.
* @return the spec.
* @since 5.0.1
*/
public S messageHeaders(Map<String, Expression> headerExpressions) {
Assert.state(this.target instanceof AbstractMessageSource,
() -> "'MessageSource' must be an instance of 'AbstractMessageSource', not "
+ this.target.getClass());
((AbstractMessageSource<?>) this.target).setHeaderExpressions(headerExpressions);
return _this();
}
}