From 04e92d13b52ed952e12780d3d17d375af6f4a390 Mon Sep 17 00:00:00 2001 From: gopikrishhnachokkalamani Date: Wed, 3 Oct 2018 11:54:32 -0400 Subject: [PATCH] spring integration example --- .../springboot/config/IntegrationConfig.java | 16 +++++++ .../springboot/service/AddressService.java | 4 +- .../springboot/service/StudentService.java | 46 ++++++++++++++++--- 3 files changed, 57 insertions(+), 9 deletions(-) diff --git a/springboot-integration-router/src/main/java/com/springboot/config/IntegrationConfig.java b/springboot-integration-router/src/main/java/com/springboot/config/IntegrationConfig.java index 8c08ec3..c5e6d84 100644 --- a/springboot-integration-router/src/main/java/com/springboot/config/IntegrationConfig.java +++ b/springboot-integration-router/src/main/java/com/springboot/config/IntegrationConfig.java @@ -1,6 +1,8 @@ package com.springboot.config; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.springframework.context.annotation.Bean; @@ -17,6 +19,7 @@ import org.springframework.integration.json.ObjectToJsonTransformer; import org.springframework.integration.router.HeaderValueRouter; import org.springframework.integration.router.PayloadTypeRouter; +import org.springframework.integration.router.RecipientListRouter; import org.springframework.integration.support.json.Jackson2JsonObjectMapper; import org.springframework.integration.transformer.HeaderEnricher; import org.springframework.integration.transformer.support.HeaderValueMessageProcessor; @@ -107,4 +110,17 @@ public HeaderValueRouter headerRouter() { return router; } + // Recipient List Router + @ServiceActivator(inputChannel = "recipient.payload.router.channel") + @Bean + public RecipientListRouter recipientListRouter() { + RecipientListRouter router = new RecipientListRouter(); + router.setSendTimeout(1_234L); + router.setIgnoreSendFailures(true); + router.setApplySequence(true); + router.addRecipient("student.channel"); + router.addRecipient("address.channel"); + router.addRecipient("channel3"); + return router; + } } \ No newline at end of file diff --git a/springboot-integration-router/src/main/java/com/springboot/service/AddressService.java b/springboot-integration-router/src/main/java/com/springboot/service/AddressService.java index 6fac22e..00a3e17 100644 --- a/springboot-integration-router/src/main/java/com/springboot/service/AddressService.java +++ b/springboot-integration-router/src/main/java/com/springboot/service/AddressService.java @@ -1,11 +1,11 @@ package com.springboot.service; +import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.Message; import org.springframework.messaging.MessagingException; -import org.springframework.stereotype.Component; -@Component +@MessageEndpoint public class AddressService { @ServiceActivator(inputChannel = "address.channel") diff --git a/springboot-integration-router/src/main/java/com/springboot/service/StudentService.java b/springboot-integration-router/src/main/java/com/springboot/service/StudentService.java index 28194a9..11f2db4 100644 --- a/springboot-integration-router/src/main/java/com/springboot/service/StudentService.java +++ b/springboot-integration-router/src/main/java/com/springboot/service/StudentService.java @@ -1,10 +1,13 @@ package com.springboot.service; -import org.springframework.integration.annotation.EndpointId; import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.Message; +import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessagingException; +import org.springframework.messaging.support.MessageBuilder; + +import com.springboot.model.Student; @MessageEndpoint public class StudentService { @@ -16,10 +19,39 @@ public void recieveMessage(Message message) throws MessagingException { System.out.println(message.getPayload()); } -// @ServiceActivator(inputChannel = "student.channel.2") -// public void recieveMessage1(Message message) throws MessagingException { -// System.out.println("###student.channel.2###"); -// System.out.println(message); -// System.out.println(message.getPayload()); -// } + // @ServiceActivator(inputChannel = "student.channel.2") + // public void recieveMessage1(Message message) throws MessagingException { + // System.out.println("###student.channel.2###"); + // System.out.println(message); + // System.out.println(message.getPayload()); + // } + + @ServiceActivator(inputChannel = "integration.gateway.channel") + public void anotherMessage(Message message) throws MessagingException { + MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel(); + MessageBuilder.fromMessage(message); + Message newMessage = MessageBuilder + .withPayload("Welcome, " + message.getPayload() + " to Spring Integration").build(); + replyChannel.send(newMessage); + } + + @ServiceActivator(inputChannel = "integration.student.objectToJson.channel", outputChannel = "integration.student.jsonToObject.channel") + public Message recieveMessage1(Message message) throws MessagingException { + System.out.println("######################"); + System.out.println(message); + System.out.println("######################"); + System.out.println("Object to Json - " + message.getPayload()); + return message; + } + + @ServiceActivator(inputChannel = "integration.student.jsonToObject.fromTransformer.channel") + public void processJsonToObject(Message message) throws MessagingException { + MessageChannel replyChannel = (MessageChannel) message.getHeaders().getReplyChannel(); + MessageBuilder.fromMessage(message); + System.out.println("######################"); + System.out.println("Json to Object - " + message.getPayload()); + Student student = (Student) message.getPayload(); + Message newMessage = MessageBuilder.withPayload(student.toString()).build(); + replyChannel.send(newMessage); + } } \ No newline at end of file