On http://docs.spring.io/spring-xd/docs/1.2.1.RELEASE/reference/html/#reactor-streams it is documented, how a Reactor Stream is implemented in Spring XD. According to this documentation I have built my own application:
/src/main/java/mypackage/MyReactorStream.java
:
...
import org.springframework.xd.reactor.Processor;
import reactor.rx.Stream;
public class MyReactorStream implements Processor<SomePOJO, SomePOJO> {
private int intParam;
public void setIntParam(int intParam) { ... }
@Override
public Stream<SomePOJO> process(Stream<SomePOJO> inputStream) { ... }
}
/src/main/resources/config/config.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<beans ...>
<bean id="messageProcessor" class="mypackage.MyReactorStream">
<property name="intParam" value="${intParam}" />
</bean>
<!-- The rest is boilerplate that XD 1.1 RC1 will avoid you having to provide -->
<int:channel id="input" />
<bean name="messageHandler"
class="org.springframework.xd.reactor.BroadcasterMessageHandler">
<constructor-arg ref="messageProcessor" />
</bean>
<int:service-activator input-channel="input"
ref="messageHandler" output-channel="output" />
<int:channel id="output" />
</beans>
I want to use @Configuration
and Spring annotations for my Java class instead of the XML configuration. How is this possible?