diff --git a/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/dsl/AmqpInboundPolledChannelAdapterSpec.java b/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/dsl/AmqpInboundPolledChannelAdapterSpec.java index a1cef39cc1..5cda92ba8f 100644 --- a/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/dsl/AmqpInboundPolledChannelAdapterSpec.java +++ b/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/dsl/AmqpInboundPolledChannelAdapterSpec.java @@ -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; } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/dsl/MessageSourceSpec.java b/spring-integration-core/src/main/java/org/springframework/integration/dsl/MessageSourceSpec.java index 94bb99307b..aa356eb1e7 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/dsl/MessageSourceSpec.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/dsl/MessageSourceSpec.java @@ -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 the target {@link MessageSource} implementation type. * * @author Artem Bilan + * @author Gary Russell * * @since 5.0 */ public abstract class MessageSourceSpec, H extends MessageSource> extends IntegrationComponentSpec { + + /** + * 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 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(); + } + }