diff --git a/spring-boot-samples/spring-boot-sample-parent-context/pom.xml b/spring-boot-samples/spring-boot-sample-parent-context/pom.xml index a0807593d5..abec95ea40 100644 --- a/spring-boot-samples/spring-boot-sample-parent-context/pom.xml +++ b/spring-boot-samples/spring-boot-sample-parent-context/pom.xml @@ -28,6 +28,10 @@ org.springframework.boot spring-boot-starter-actuator + + org.springframework.integration + spring-integration-file + org.springframework.integration spring-integration-jmx diff --git a/spring-boot-samples/spring-boot-sample-parent-context/src/main/java/sample/parent/SampleParentContextApplication.java b/spring-boot-samples/spring-boot-sample-parent-context/src/main/java/sample/parent/SampleParentContextApplication.java index 0e50611ea6..9bcdec26cb 100644 --- a/spring-boot-samples/spring-boot-sample-parent-context/src/main/java/sample/parent/SampleParentContextApplication.java +++ b/spring-boot-samples/spring-boot-sample-parent-context/src/main/java/sample/parent/SampleParentContextApplication.java @@ -16,20 +16,71 @@ package sample.parent; +import java.io.File; + import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.ImportResource; +import org.springframework.context.annotation.Bean; +import org.springframework.integration.channel.DirectChannel; +import org.springframework.integration.dsl.IntegrationFlow; +import org.springframework.integration.dsl.IntegrationFlows; +import org.springframework.integration.dsl.SourcePollingChannelAdapterSpec; +import org.springframework.integration.dsl.core.Pollers; +import org.springframework.integration.dsl.support.Consumer; +import org.springframework.integration.file.FileReadingMessageSource; +import org.springframework.integration.file.FileWritingMessageHandler; @SpringBootApplication @EnableConfigurationProperties(ServiceProperties.class) public class SampleParentContextApplication { @EnableAutoConfiguration - @ImportResource("integration-context.xml") protected static class Parent { + @Bean + public FileReadingMessageSource fileReader() { + FileReadingMessageSource reader = new FileReadingMessageSource(); + reader.setDirectory(new File("target/input")); + return reader; + } + + @Bean + public DirectChannel inputChannel() { + return new DirectChannel(); + } + + @Bean + public DirectChannel outputChannel() { + return new DirectChannel(); + } + + @Bean + public FileWritingMessageHandler fileWriter() { + FileWritingMessageHandler writer = new FileWritingMessageHandler( + new File("target/output")); + writer.setExpectReply(false); + return writer; + } + + @Bean + public IntegrationFlow integrationFlow(SampleEndpoint endpoint) { + return IntegrationFlows.from(fileReader(), new FixedRatePoller()) + .channel(inputChannel()).handle(endpoint).channel(outputChannel()) + .handle(fileWriter()).get(); + } + + private static class FixedRatePoller + implements Consumer { + + @Override + public void accept(SourcePollingChannelAdapterSpec spec) { + spec.poller(Pollers.fixedRate(500)); + } + + } + } public static void main(String[] args) throws Exception { diff --git a/spring-boot-samples/spring-boot-sample-parent-context/src/main/resources/integration-context.xml b/spring-boot-samples/spring-boot-sample-parent-context/src/main/resources/integration-context.xml deleted file mode 100644 index 0ac88e8ee7..0000000000 --- a/spring-boot-samples/spring-boot-sample-parent-context/src/main/resources/integration-context.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - -