From dc20f90f037c4e18f246ce3a0119739e267e0311 Mon Sep 17 00:00:00 2001 From: Ilayaperumal Gopinathan Date: Sat, 2 May 2020 07:17:55 +0530 Subject: [PATCH] Refactor the stream applications Thanks to Soby Chacko for the suggestions --- .../logsink/LogConsumerConfiguration.java | 31 ------------------- .../example/logsink/LogSinkApplication.java | 22 +++++++++++++ .../timesource/TimeSourceApplication.java | 22 +++++-------- 3 files changed, 30 insertions(+), 45 deletions(-) delete mode 100644 spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogConsumerConfiguration.java diff --git a/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogConsumerConfiguration.java b/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogConsumerConfiguration.java deleted file mode 100644 index 75d0cfb..0000000 --- a/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogConsumerConfiguration.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.example.logsink; - -import java.util.function.Consumer; - -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.handler.LoggingHandler; -import org.springframework.messaging.Message; - -@Configuration -public class LogConsumerConfiguration { - public LogConsumerConfiguration() { - } - - @Bean - IntegrationFlow logConsumerFlow() { - return IntegrationFlows.from(MessageConsumer.class, (gateway) -> gateway.beanName("logConsumer")) - .handle((payload, headers) -> { - if (payload instanceof byte[]) { - return new String((byte[]) payload); - } - return payload; - }) - .log(LoggingHandler.Level.INFO, "log-consumer", "payload") - .get(); - } - - private interface MessageConsumer extends Consumer> {} -} diff --git a/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogSinkApplication.java b/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogSinkApplication.java index e5e5a8a..9fb8d3e 100644 --- a/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogSinkApplication.java +++ b/spring-cloud-stream-function-bindings/log-sink/src/main/java/com/example/logsink/LogSinkApplication.java @@ -1,11 +1,33 @@ package com.example.logsink; +import java.util.function.Consumer; + import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.integration.dsl.IntegrationFlow; +import org.springframework.integration.dsl.IntegrationFlows; +import org.springframework.integration.handler.LoggingHandler; +import org.springframework.messaging.Message; @SpringBootApplication public class LogSinkApplication { + @Bean + IntegrationFlow logConsumerFlow() { + return IntegrationFlows.from(MessageConsumer.class, (gateway) -> gateway.beanName("logConsumer")) + .handle((payload, headers) -> { + if (payload instanceof byte[]) { + return new String((byte[]) payload); + } + return payload; + }) + .log(LoggingHandler.Level.INFO, "log-consumer", "payload") + .get(); + } + + private interface MessageConsumer extends Consumer> {} + public static void main(String[] args) { SpringApplication.run(LogSinkApplication.class, args); } diff --git a/spring-cloud-stream-function-bindings/time-source/src/main/java/com/example/timesource/TimeSourceApplication.java b/spring-cloud-stream-function-bindings/time-source/src/main/java/com/example/timesource/TimeSourceApplication.java index c210564..b977e6a 100644 --- a/spring-cloud-stream-function-bindings/time-source/src/main/java/com/example/timesource/TimeSourceApplication.java +++ b/spring-cloud-stream-function-bindings/time-source/src/main/java/com/example/timesource/TimeSourceApplication.java @@ -7,26 +7,20 @@ import java.util.function.Supplier; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; @SpringBootApplication public class TimeSourceApplication { + @Bean + public Supplier timeSupplier() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + return () -> { + return sdf.format(new Date()); + }; + } + public static void main(String[] args) { SpringApplication.run(TimeSourceApplication.class, args); } - @Configuration - public class TimeSupplierConfiguration { - public TimeSupplierConfiguration() { - } - - @Bean - public Supplier timeSupplier() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); - return () -> { - return sdf.format(new Date()); - }; - } - } }