From 2c1a070930b54b724d6377f85211e872bf2c6a24 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Tue, 20 Sep 2016 14:32:58 -0400 Subject: [PATCH] Add file-split-ftp Sample JIRA: https://jira.spring.io/browse/INTSAMPLES-149 Polishing - PR Comments Polishing - Work Around DSL Issue #119 Make test compatible with Windows. Also reset Application context `DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD`. Since tests uses the same target resources we should be sure that they use clear foundation before running --- README.md | 1 + applications/file-split-ftp/.gitignore | 7 + applications/file-split-ftp/README.adoc | 21 ++ applications/file-split-ftp/images/flo1.png | Bin 0 -> 68429 bytes applications/file-split-ftp/images/flo2.png | Bin 0 -> 112324 bytes applications/file-split-ftp/pom.xml | 151 +++++++++++ .../samples/filesplit/Application.java | 234 ++++++++++++++++++ .../src/main/resources/application.properties | 4 + .../src/main/resources/logback.xml | 17 ++ .../samples/filesplit/ApplicationTests.java | 208 ++++++++++++++++ build.gradle | 33 ++- 11 files changed, 675 insertions(+), 1 deletion(-) create mode 100644 applications/file-split-ftp/.gitignore create mode 100644 applications/file-split-ftp/README.adoc create mode 100644 applications/file-split-ftp/images/flo1.png create mode 100644 applications/file-split-ftp/images/flo2.png create mode 100644 applications/file-split-ftp/pom.xml create mode 100644 applications/file-split-ftp/src/main/java/org/springframework/integration/samples/filesplit/Application.java create mode 100644 applications/file-split-ftp/src/main/resources/application.properties create mode 100644 applications/file-split-ftp/src/main/resources/logback.xml create mode 100644 applications/file-split-ftp/src/test/java/org/springframework/integration/samples/filesplit/ApplicationTests.java diff --git a/README.md b/README.md index 21bd7500..d74a0f4b 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ This category targets developers and architects who have a good understanding of * **cafe-scripted** - Scripted implementation of the classic **cafe** sample application. Supports **JavaScript**, **Groovy**, **Ruby**, and **Python**. * **loan-broker** - Simulates a simple banking application (Uses **Gateway**, **Chain**, **Header Enricher**, **Recipient List Router**, **Aggregator**) see [Appendix A of the reference documentation](http://docs.spring.io/spring-integration/reference/html/samples.html) for more details * **loanshark** This extension to the loan broker sample shows how to exchange messages between Spring Integration applications (and other technologies) using **UDP**. + **file-split-ftp** - Reads a file; splits into 3 based on contents; sends files over ftp; sends email with results. #Contributing diff --git a/applications/file-split-ftp/.gitignore b/applications/file-split-ftp/.gitignore new file mode 100644 index 00000000..ce3767e5 --- /dev/null +++ b/applications/file-split-ftp/.gitignore @@ -0,0 +1,7 @@ +/target/ +.classpath +.project +.settings +.factorypath +.mvn +mvnw* diff --git a/applications/file-split-ftp/README.adoc b/applications/file-split-ftp/README.adoc new file mode 100644 index 00000000..e70160fc --- /dev/null +++ b/applications/file-split-ftp/README.adoc @@ -0,0 +1,21 @@ +:imagesdir: ./images + += File Split and FTP Sample + +- Looks for files `*.txt` in `/tmp/in` +- Reads file and writes to 3 files based on account (first 4 bytes in file) +- FileSplitter -> router [lines -> `lines`], [file marks -> `marks`] +- `marks` filters on EOF marker (drops SOF) +- pubsub [flush files], [ftp (x3)], [email result] +- Exceptions go to `tfrErrors` - sends failure email +- input file is renamed, based on final dispostion + +Test cases are provided for happy path and failure scenarios + +Run `ApplicationTests` as a JUnit test from your IDE. + += Flow Visualization + +image::flo1.png[] + +image::flo2.png[] diff --git a/applications/file-split-ftp/images/flo1.png b/applications/file-split-ftp/images/flo1.png new file mode 100644 index 0000000000000000000000000000000000000000..5643320f28c3c6b7333abc14af1dd170dc0357f7 GIT binary patch literal 68429 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 V5BZC>Lze-MuD1TM>?5|J{{ssF|55+| literal 0 HcmV?d00001 diff --git a/applications/file-split-ftp/images/flo2.png b/applications/file-split-ftp/images/flo2.png new file mode 100644 index 0000000000000000000000000000000000000000..383e1d54f0a73fd4267953fc71381731a62abd93 GIT binary patch literal 112324 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 DDd$1z literal 0 HcmV?d00001 diff --git a/applications/file-split-ftp/pom.xml b/applications/file-split-ftp/pom.xml new file mode 100644 index 00000000..002e98f8 --- /dev/null +++ b/applications/file-split-ftp/pom.xml @@ -0,0 +1,151 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 1.4.0.RELEASE + + org.springframework.integration.samples + file-split-ftp + 4.3.0.BUILD-SNAPSHOT + File Split FTP + File Split FTP + http://projects.spring.io/spring-integration + + SpringIO + https://spring.io + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + garyrussell + Gary Russell + grussell@pivotal.io + + project lead + + + + markfisher + Mark Fisher + mfisher@pivotal.io + + project founder and lead emeritus + + + + ghillert + Gunnar Hillert + ghillert@pivotal.io + + + abilan + Artem Bilan + abilan@pivotal.io + + + + scm:git:scm:git:git://github.com/spring-projects/spring-integration-samples.git + scm:git:scm:git:ssh://git@github.com:spring-projects/spring-integration-samples.git + https://github.com/spring-projects/spring-integration-samples + + + + org.springframework.boot + spring-boot-starter-web + compile + + + org.springframework.boot + spring-boot-starter-integration + compile + + + org.springframework.integration + spring-integration-ftp + 4.3.2.RELEASE + compile + + + org.springframework.integration + spring-integration-http + 4.3.2.RELEASE + compile + + + org.springframework.integration + spring-integration-mail + 4.3.2.RELEASE + compile + + + org.springframework.integration + spring-integration-test + 5.0.0.BUILD-SNAPSHOT + compile + + + javax.mail + javax.mail-api + 1.5.5 + compile + + + com.sun.mail + javax.mail + 1.5.5 + compile + + + junit + junit + 4.12 + test + + + org.hamcrest + hamcrest-all + 1.3 + test + + + org.mockito + mockito-core + 1.10.19 + test + + + org.springframework + spring-test + 4.3.2.RELEASE + test + + + org.springframework.boot + spring-boot-starter-test + test + + + + + repo.spring.io.milestone + Spring Framework Maven Milestone Repository + https://repo.spring.io/libs-milestone + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/applications/file-split-ftp/src/main/java/org/springframework/integration/samples/filesplit/Application.java b/applications/file-split-ftp/src/main/java/org/springframework/integration/samples/filesplit/Application.java new file mode 100644 index 00000000..d7e93f79 --- /dev/null +++ b/applications/file-split-ftp/src/main/java/org/springframework/integration/samples/filesplit/Application.java @@ -0,0 +1,234 @@ +/* + * Copyright 2002-2016 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.integration.samples.filesplit; + +import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; + +import org.aopalliance.intercept.MethodInterceptor; +import org.apache.commons.net.ftp.FTPFile; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.mail.MailProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.integration.dsl.IntegrationFlow; +import org.springframework.integration.dsl.IntegrationFlows; +import org.springframework.integration.dsl.core.Pollers; +import org.springframework.integration.dsl.file.Files; +import org.springframework.integration.dsl.mail.Mail; +import org.springframework.integration.file.FileHeaders; +import org.springframework.integration.file.FileWritingMessageHandler; +import org.springframework.integration.file.remote.session.SessionFactory; +import org.springframework.integration.file.splitter.FileSplitter; +import org.springframework.integration.file.support.FileExistsMode; +import org.springframework.integration.ftp.session.DefaultFtpSessionFactory; +import org.springframework.integration.http.config.EnableIntegrationGraphController; +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageHeaders; +import org.springframework.messaging.MessagingException; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@SpringBootApplication +@EnableIntegrationGraphController +public class Application { + + private static final String EMAIL_SUCCESS_SUFFIX = "emailSuccessSuffix"; + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Autowired + private MailProperties mailProperties; + + /** + * Poll for files, add an error channel, split into lines route the start/end markers + * to {@link #markers()} and the lines to {@link #lines()}. + * @return the flow. + */ + @Bean + public IntegrationFlow fromFile() { + return IntegrationFlows.from(Files.inboundAdapter(new File("/tmp/in")) + .preventDuplicates(false) + .patternFilter("*.txt"), e -> e.poller(Pollers.fixedDelay(5000))) + .enrichHeaders(h -> h.header(MessageHeaders.ERROR_CHANNEL, "tfrErrors.input")) + .handle(Files.splitter(true, true)) + .>route(Object::getClass, m -> m + .channelMapping(FileSplitter.FileMarker.class, "markers.input") + .channelMapping(String.class, "lines.input")) + .get(); + } + + /** + * Process lines; append (no flush) to the appropriate file. + * @return the flow. + */ + @Bean + public IntegrationFlow lines() { + return f -> f.handle(fileOut()); + } + + @Bean + public FileWritingMessageHandler fileOut() { + return Files.outboundAdapter("'/tmp/out'") + .appendNewLine(true) + .fileNameExpression("payload.substring(1, 4) + '.txt'") + .fileExistsMode(FileExistsMode.APPEND_NO_FLUSH) // files remain open for efficiency + .get(); + } + + /** + * Process file markers; ignore START, when END, flush the files, ftp them and + * send an email. + * @return the flow. + */ + @Bean + public IntegrationFlow markers() { + return f -> f.filter(m -> m.getMark().equals(FileSplitter.FileMarker.Mark.END), + e -> e.id("markerFilter")) + .publishSubscribeChannel(s -> s + + // first trigger file flushes + .subscribe(sf -> sf.transform("'/tmp/out/.*\\.txt'", e -> e.id("toTriggerPattern")) + .handle("fileOut", "trigger", e -> e.id("flusher"))) + + // send the first file + .subscribe(sf -> sf.transform(p -> new File("/tmp/out/002.txt")) + .enrichHeaders(h -> h.header(FileHeaders.FILENAME, "002.txt", true)) + .handleWithAdapter(a -> a.ftp(ftp1()).remoteDirectory("foo"), e -> e.id("ftp002"))) + + // send the second file + .subscribe(sf -> sf.transform(p -> new File("/tmp/out/006.txt")) + .enrichHeaders(h -> h.header(FileHeaders.FILENAME, "006.txt", true)) + .handleWithAdapter(a -> a.ftp(ftp2()).remoteDirectory("foo"), e -> e.id("ftp006"))) + + // send the third file + .subscribe(sf -> sf.transform(p -> new File("/tmp/out/009.txt")) + .enrichHeaders(h -> h.header(FileHeaders.FILENAME, "009.txt", true)) + .handleWithAdapter(a -> a.ftp(ftp3()).remoteDirectory("foo"), e -> e.id("ftp009"))) + + // send an email + .subscribe(sf -> sf.transform(FileSplitter.FileMarker::getFilePath) + .enrichHeaders(Mail.headers() + .subject("File successfully split and transferred") + .from("foo@bar") + .toFunction(m -> new String[] {"bar@baz"})) + .enrichHeaders(h -> h.header(EMAIL_SUCCESS_SUFFIX, ".success")) + .channel("toMail.input"))); + } + + @Bean + public SessionFactory ftp1() { + DefaultFtpSessionFactory ftp = new DefaultFtpSessionFactory(); + ftp.setHost("host3"); + ftp.setUsername("user"); + ftp.setPassword("ftp"); + return ftp; + } + + @Bean + public SessionFactory ftp2() { + DefaultFtpSessionFactory ftp = new DefaultFtpSessionFactory(); + ftp.setHost("host3"); + ftp.setUsername("user"); + ftp.setPassword("ftp"); + return ftp; + } + + @Bean + public SessionFactory ftp3() { + DefaultFtpSessionFactory ftp = new DefaultFtpSessionFactory(); + ftp.setHost("host3"); + ftp.setUsername("user"); + ftp.setPassword("ftp"); + return ftp; + } + + /** + * Error flow - email failure + * @return the flow. + */ + @Bean + public IntegrationFlow tfrErrors() { + return f -> f.enrichHeaders(Mail.headers() + .subject("File split and transfer failed") + .from("foo@bar") + .toFunction(m -> new String[] {"bar@baz"})) + .enrichHeaders(h -> h.header(EMAIL_SUCCESS_SUFFIX, ".failed") + .headerExpression(FileHeaders.ORIGINAL_FILE, "payload.failedMessage.headers['" + + FileHeaders.ORIGINAL_FILE + "']")) + .transform(p -> + p.getFailedMessage().getPayload().toString() + "\n" + getStackTraceAsString(p)) + .channel("toMail.input"); + } + + @Bean + public IntegrationFlow toMail() { + return f -> f.handleWithAdapter(a -> a.mail(this.mailProperties.getHost()) +// .javaMailProperties(b -> b.put("mail.debug", "true")) + .port(this.mailProperties.getPort()) + .credentials(this.mailProperties.getUsername(), this.mailProperties.getPassword()), + e -> e.id("mailOut").advice(afterMailAdvice())); + } + + /** + * Rename the input file after success/failure. + * @return the flow. + */ + @Bean + public MethodInterceptor afterMailAdvice() { + return invocation -> { + Message message = (Message) invocation.getArguments()[0]; + MessageHeaders headers = message.getHeaders(); + File originalFile = headers.get(FileHeaders.ORIGINAL_FILE, File.class); + try { + invocation.proceed(); + originalFile.renameTo( + new File(originalFile.getAbsolutePath() + headers.get(EMAIL_SUCCESS_SUFFIX))); + } + catch (Exception e) { + originalFile.renameTo( + new File(originalFile.getAbsolutePath() + headers.get(EMAIL_SUCCESS_SUFFIX) + ".email.failed")); + } + return null; + }; + } + + // Integration Graph CORS + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurerAdapter() { + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/integration").allowedOrigins("http://localhost:8082"); + } + }; + } + + private String getStackTraceAsString(Throwable cause) { + StringWriter stringWriter = new StringWriter(); + PrintWriter printWriter = new PrintWriter(stringWriter, true); + cause.printStackTrace(printWriter); + return stringWriter.getBuffer().toString(); + } + +} diff --git a/applications/file-split-ftp/src/main/resources/application.properties b/applications/file-split-ftp/src/main/resources/application.properties new file mode 100644 index 00000000..330425fd --- /dev/null +++ b/applications/file-split-ftp/src/main/resources/application.properties @@ -0,0 +1,4 @@ +spring.mail.host=localhost +spring.mail.port=25 +spring.mail.username=user +spring.mail.password=pw diff --git a/applications/file-split-ftp/src/main/resources/logback.xml b/applications/file-split-ftp/src/main/resources/logback.xml new file mode 100644 index 00000000..bb023166 --- /dev/null +++ b/applications/file-split-ftp/src/main/resources/logback.xml @@ -0,0 +1,17 @@ + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + diff --git a/applications/file-split-ftp/src/test/java/org/springframework/integration/samples/filesplit/ApplicationTests.java b/applications/file-split-ftp/src/test/java/org/springframework/integration/samples/filesplit/ApplicationTests.java new file mode 100644 index 00000000..3e781ca0 --- /dev/null +++ b/applications/file-split-ftp/src/test/java/org/springframework/integration/samples/filesplit/ApplicationTests.java @@ -0,0 +1,208 @@ +/* + * Copyright 2002-2016 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.integration.samples.filesplit; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.willThrow; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.verify; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + +import org.apache.commons.net.ftp.FTPFile; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.integration.file.remote.session.Session; +import org.springframework.integration.file.remote.session.SessionFactory; +import org.springframework.integration.test.mail.TestMailServer; +import org.springframework.integration.test.mail.TestMailServer.SmtpServer; +import org.springframework.integration.test.util.TestUtils; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +public class ApplicationTests { + + private static final SmtpServer smtpServer = TestMailServer.smtp(0); + + @Autowired + private Session session; + + @BeforeClass + public static void setup() { + // Configure the boot property to send email to the test email server. + System.setProperty("spring.mail.port", Integer.toString(smtpServer.getPort())); + new File("/tmp/in/foo.txt").delete(); + new File("/tmp/in/foo.txt.success").delete(); + new File("/tmp/in/foo.txt.failed").delete(); + } + + @Before + public void beforeTest() { + smtpServer.getMessages().clear(); + } + + @SuppressWarnings("unchecked") + @Test + public void testSuccess() throws Exception { + reset(this.session); + String message = runTest(false); + assertThat(message).contains("File successfully split and transferred"); + assertThat(message).contains(TestUtils.applySystemFileSeparator("/tmp/in/foo.txt")); + } + + @Test + public void testFailure() throws Exception { + willThrow(new RuntimeException("fail test exception")) + .given(this.session).write(any(InputStream.class), eq("foo/002.txt.writing")); + String message = runTest(true); + assertThat(message).contains("File split and transfer failed"); + assertThat(message).contains("fail test exception"); + assertThat(message).contains(TestUtils.applySystemFileSeparator("/tmp/out/002.txt")); + } + + /* + * Create a test file containing one row per account. + * Verify the three files appear, with the correct contents. + * Verify the input file was renamed based on success/failure. + * Verify the email was sent. + */ + private String runTest(boolean fail) throws Exception { + File in = new File("/tmp/in/", "foo"); + FileOutputStream fos = new FileOutputStream(in); + fos.write("*002,foo,bar\n*006,baz,qux\n*009,fiz,buz\n".getBytes()); + fos.close(); + in.renameTo(new File("/tmp/in/", "foo.txt")); + File out = new File("/tmp/out/002.txt"); + int n = 0; + while(n++ < 100 && !out.exists() && out.length() < 12) { + Thread.sleep(100); + } + assertThat(out.exists()).isTrue(); + BufferedReader br = new BufferedReader(new FileReader(out)); + assertThat(br.readLine()).isEqualTo("*002,foo,bar"); + br.close(); + out.delete(); + out = new File("/tmp/out/006.txt"); + assertThat(out.exists()).isTrue(); + br = new BufferedReader(new FileReader(out)); + assertThat(br.readLine()).isEqualTo("*006,baz,qux"); + br.close(); + out.delete(); + out = new File("/tmp/out/009.txt"); + assertThat(out.exists()).isTrue(); + br = new BufferedReader(new FileReader(out)); + assertThat(br.readLine()).isEqualTo("*009,fiz,buz"); + br.close(); + out.delete(); + if (!fail) { + in = new File("/tmp/in/", "foo.txt.success"); + } + else { + in = new File("/tmp/in/", "foo.txt.failed"); + } + n = 0; + while(n++ < 100 && !in.exists()) { + Thread.sleep(100); + } + assertThat(in.exists()).isTrue(); + in.delete(); + // verify FTP + verify(this.session).write(any(InputStream.class), eq("foo/002.txt.writing")); + if (!fail) { + verify(this.session).write(any(InputStream.class), eq("foo/006.txt.writing")); + verify(this.session).write(any(InputStream.class), eq("foo/009.txt.writing")); + verify(this.session).rename("foo/002.txt.writing", "foo/002.txt"); + verify(this.session).rename("foo/006.txt.writing", "foo/006.txt"); + verify(this.session).rename("foo/009.txt.writing", "foo/009.txt"); + } + + String message = verifyMail(); + assertThat(message).contains("From: foo@bar"); + assertThat(message).contains("To: bar@baz"); + return message; + } + + public String verifyMail() throws Exception { + List messages = smtpServer.getMessages(); + int n = 0; + while (n++ < 100 && messages.size() < 1) { + Thread.sleep(100); + } + assertThat(messages).hasSize(1); + return messages.get(0); + } + + /** + * Overrides the ftp session factories with mocks. + * + */ + @Configuration + @Import(Application.class) + public static class Config { + + @Bean + public SessionFactory ftp1() throws IOException { + return mockSf(); + } + + @Bean + public SessionFactory ftp2() throws IOException { + return mockSf(); + } + + @Bean + public SessionFactory ftp3() throws IOException { + return mockSf(); + } + + private SessionFactory mockSf() throws IOException { + @SuppressWarnings("unchecked") + SessionFactory mocksf = mock(SessionFactory.class); + given(mocksf.getSession()).willReturn(mockSession()); + return mocksf; + } + + @SuppressWarnings("unchecked") + @Bean + public Session mockSession() throws IOException { + return mock(Session.class); + } + + } + +} diff --git a/build.gradle b/build.gradle index b6a660fb..a7ec078d 100644 --- a/build.gradle +++ b/build.gradle @@ -189,7 +189,7 @@ subprojects { subproject -> junitVersion = '4.12' jythonVersion = '2.5.3' log4jVersion = '1.2.17' - mockitoVersion = '1.9.5' + mockitoVersion = '1.10.19' openJpaVersion = '2.4.0' oracleDriverVersion = '11.2.0.3' reactorVersion = '2.0.8.RELEASE' @@ -1371,6 +1371,37 @@ project('kafka-dsl') { } } +project('file-split-ftp') { + description = 'File Split FTP' + + apply plugin: 'spring-boot' + + dependencies { + compile 'org.springframework.boot:spring-boot-starter-web' + compile 'org.springframework.boot:spring-boot-starter-integration' + compile "org.springframework.integration:spring-integration-core:$springIntegrationVersion" + compile "org.springframework.integration:spring-integration-ftp:$springIntegrationVersion" + compile "org.springframework.integration:spring-integration-http:$springIntegrationVersion" + compile "org.springframework.integration:spring-integration-mail:$springIntegrationVersion" + compile "org.springframework.integration:spring-integration-java-dsl:$springIntegrationDslVersion" + compile "org.springframework.integration:spring-integration-test:5.0.0.BUILD-SNAPSHOT" // test mail server + compile "javax.mail:javax.mail-api:$javaxMailVersion" + compile "com.sun.mail:javax.mail:$javaxMailVersion" + + testCompile 'org.springframework.boot:spring-boot-starter-test' + } + + springBoot { + mainClass = 'org.springframework.integration.samples.filesplit.Application' + } + + task run(type: JavaExec) { + main 'org.springframework.integration.samples.filesplit.Application' + classpath = sourceSets.main.runtimeClasspath + } +} + + sonarqube { properties { property "sonar.jacoco.reportPath", "${buildDir.name}/jacoco.exec"