SpringOne 2014 @Config to DSL (E-G)

This commit is contained in:
Gary Russell
2014-09-08 12:55:53 -05:00
parent a97acde67b
commit 59dcdd915e
2 changed files with 63 additions and 7 deletions

View File

@@ -16,16 +16,21 @@
package org.springframework.integration.samples.si4demo.springone.f;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.annotation.BridgeTo;
import org.springframework.integration.annotation.IntegrationComponentScan;
import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.integration.dsl.IntegrationFlow;
import org.springframework.integration.dsl.IntegrationFlows;
import org.springframework.integration.dsl.mail.Mail;
import org.springframework.integration.samples.si4demo.springone.GMailProperties;
import org.springframework.messaging.MessageChannel;
/**
*
@@ -43,7 +48,9 @@ public class FMail {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext ctx =
SpringApplication.run(FMail.class);
new SpringApplicationBuilder(FMail.class)
.web(false)
.run(args);
System.out.println(ctx.getBean(FooService.class).foo("foo"));
ctx.close();
}
@@ -60,8 +67,37 @@ public class FMail {
return f -> f
.transform("payload + payload")
.handle(String.class, (p, h) -> p.toUpperCase())
//RLR
;
.routeToRecipients(r ->
r.recipient("bridgeToNowhere", "true")
.recipient("smtpChannel", "true"));
}
@BridgeTo
@Bean
public MessageChannel bridgeToNowhere() {
return new DirectChannel();
}
@Bean
public MessageChannel smtpChannel() {
return new DirectChannel();
}
@Bean
IntegrationFlow smtp() {
return IntegrationFlows.from(smtpChannel())
.enrichHeaders(Mail.headers()
.subject("SpringOne 2014")
.to("sispringone@gmail.com")
.from("sispringone@gmail.com"))
.handle(Mail.outboundAdapter("smtp.gmail.com")
.port(465)
.protocol("smtps")
.credentials(gmail.getUser(), gmail.getPassword())
.javaMailProperties(p ->
p.put("mail.debug", "false"))
, e -> e.id("smtpOut"))
.get();
}
}

View File

@@ -16,13 +16,16 @@
package org.springframework.integration.samples.si4demo.springone.g;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.dsl.IntegrationFlow;
import org.springframework.integration.dsl.IntegrationFlows;
import org.springframework.integration.dsl.mail.Mail;
import org.springframework.integration.mail.MailHeaders;
import org.springframework.integration.samples.si4demo.springone.GMailProperties;
/**
@@ -41,7 +44,9 @@ public class GIMAP {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext ctx =
SpringApplication.run(GIMAP.class);
new SpringApplicationBuilder(GIMAP.class)
.web(false)
.run(args);
System.out.println("Hit Enter to terminate");
System.in.read();
ctx.close();
@@ -49,7 +54,22 @@ public class GIMAP {
@Bean
IntegrationFlow imapIdle() {
return null;
return IntegrationFlows.from(Mail.imapIdleAdapter(
"imaps://"
+ gmail.getUser().replaceAll("@", "%40")
+ ":"
+ gmail.getPassword()
+ "@imap.gmail.com:993/INBOX")
.id("imapIn")
.autoStartup(true)
.javaMailProperties(p ->
p.put("mail.debug", "false")))
.enrichHeaders(s -> s.headerExpressions(h -> h
.put(MailHeaders.SUBJECT, "payload.subject")
.put(MailHeaders.FROM, "payload.from[0].toString()")))
.transform("payload.content")
.handle(System.out::println)
.get();
}
}