diff --git a/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/EventStreamServer.java b/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/EventStreamServer.java new file mode 100644 index 0000000000..48548bd8d5 --- /dev/null +++ b/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/EventStreamServer.java @@ -0,0 +1,12 @@ +package com.baeldung.demo.eventstreamwebfluxdemo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class EventStreamServer { + + public static void main(String[] args) { + SpringApplication.run(EventStreamServer.class, args); + } +} diff --git a/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/client/EventStreamClient.java b/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/client/EventStreamClient.java new file mode 100644 index 0000000000..73ca753136 --- /dev/null +++ b/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/client/EventStreamClient.java @@ -0,0 +1,18 @@ +package com.baeldung.demo.eventstreamwebfluxdemo.client; + +import org.springframework.http.MediaType; +import org.springframework.web.reactive.function.client.WebClient; + +public class EventStreamClient { + public static void main(String[] args) + { + WebClient.create("http://127.0.0.1:8080") + .get() + .uri("/events") + .accept(MediaType.APPLICATION_STREAM_JSON) + .retrieve() + .bodyToFlux(Long.class) + .toStream() + .forEach(item -> System.out.println("New event : " + item)); + } +} diff --git a/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/controller/EventStreamController.java b/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/controller/EventStreamController.java new file mode 100644 index 0000000000..d28d402316 --- /dev/null +++ b/spring-webflux-event-stream/src/main/java/com/baeldung/demo/eventstreamwebfluxdemo/controller/EventStreamController.java @@ -0,0 +1,17 @@ +package com.baeldung.demo.eventstreamwebfluxdemo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Flux; + +import java.time.Duration; + +@RestController +public class EventStreamController +{ + @RequestMapping("/events") + public Flux getServerEvents() + { + return Flux.interval(Duration.ofMillis(1000)); + } +} diff --git a/spring-webflux-event-stream/src/main/resources/application.properties b/spring-webflux-event-stream/src/main/resources/application.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/spring-webflux-event-stream/src/test/java/com/baeldung/demo/eventstreamwebfluxdemo/EventStreamServerTests.java b/spring-webflux-event-stream/src/test/java/com/baeldung/demo/eventstreamwebfluxdemo/EventStreamServerTests.java new file mode 100644 index 0000000000..d4dfcce4b3 --- /dev/null +++ b/spring-webflux-event-stream/src/test/java/com/baeldung/demo/eventstreamwebfluxdemo/EventStreamServerTests.java @@ -0,0 +1,16 @@ +package com.baeldung.demo.eventstreamwebfluxdemo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class EventStreamServerTests { + + @Test + public void contextLoads() { + } + +}