From a49358cfffb944d2701e4f783e27547ecb7de99e Mon Sep 17 00:00:00 2001 From: Michael Pratt Date: Thu, 5 Jul 2018 22:58:32 -0600 Subject: [PATCH] More server stuff; create client and test --- micronaut/hello-world-server/pom.xml | 9 +++-- .../micronaut/client/GreetingClient.java | 10 ++++++ .../micronaut/server/ServerApplication.java | 10 ++++++ .../controller/AsyncGreetController.java | 20 +++++++++++ .../server/controller/GreetController.java | 28 ++++++++++++++++ .../service/EnglishGreetingService.java | 14 ++++++++ .../server/service/GreetingService.java | 6 ++++ .../service/SpanishGreetingService.java | 11 +++++++ .../java/hello/world/server/Application.java | 10 ------ .../server/controller/GreetController.java | 23 ------------- .../micronaut/client/GreetingClientTest.java | 33 +++++++++++++++++++ 11 files changed, 139 insertions(+), 35 deletions(-) create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/client/GreetingClient.java create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/ServerApplication.java create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/AsyncGreetController.java create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/GreetController.java create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/EnglishGreetingService.java create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/GreetingService.java create mode 100644 micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/SpanishGreetingService.java delete mode 100644 micronaut/hello-world-server/src/main/java/hello/world/server/Application.java delete mode 100644 micronaut/hello-world-server/src/main/java/hello/world/server/controller/GreetController.java create mode 100644 micronaut/hello-world-server/src/test/java/com/baeldung/micronaut/client/GreetingClientTest.java diff --git a/micronaut/hello-world-server/pom.xml b/micronaut/hello-world-server/pom.xml index c7d3881642..8d42259776 100644 --- a/micronaut/hello-world-server/pom.xml +++ b/micronaut/hello-world-server/pom.xml @@ -4,7 +4,7 @@ hello-world-server 0.1 - hello.world.server.Application + com.baeldung.micronaut.server.ServerApplication 1.0.0.M2 9 @@ -69,7 +69,12 @@ 4.12 test - + + io.projectreactor + reactor-core + 3.1.6.RELEASE + + diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/client/GreetingClient.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/client/GreetingClient.java new file mode 100644 index 0000000000..de61ecd5f3 --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/client/GreetingClient.java @@ -0,0 +1,10 @@ +package com.baeldung.micronaut.client; + +import io.micronaut.http.annotation.Get; +import io.micronaut.http.client.Client; + +@Client("/greet") +public interface GreetingClient { + @Get("/{name}") + String greet(String name); +} diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/ServerApplication.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/ServerApplication.java new file mode 100644 index 0000000000..905acc8433 --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/ServerApplication.java @@ -0,0 +1,10 @@ +package com.baeldung.micronaut.server; + +import io.micronaut.runtime.Micronaut; + +public class ServerApplication { + + public static void main(String[] args) { + Micronaut.run(ServerApplication.class); + } +} \ No newline at end of file diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/AsyncGreetController.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/AsyncGreetController.java new file mode 100644 index 0000000000..dcc64eb26e --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/AsyncGreetController.java @@ -0,0 +1,20 @@ +package com.baeldung.micronaut.server.controller; + +import com.baeldung.micronaut.server.service.GreetingService; +import io.micronaut.http.annotation.Controller; +import io.micronaut.http.annotation.Get; +import reactor.core.publisher.Mono; + +import javax.inject.Inject; + +@Controller("/async/greet") +public class AsyncGreetController { + + @Inject + private GreetingService greetingService; + + @Get("/{name}") + public Mono greet(String name) { + return Mono.just(greetingService.getGreeting() + name); + } +} diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/GreetController.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/GreetController.java new file mode 100644 index 0000000000..64a499ce52 --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/controller/GreetController.java @@ -0,0 +1,28 @@ +package com.baeldung.micronaut.server.controller; + +import com.baeldung.micronaut.server.service.GreetingService; +import io.micronaut.http.MediaType; +import io.micronaut.http.annotation.Body; +import io.micronaut.http.annotation.Controller; +import io.micronaut.http.annotation.Get; +import io.micronaut.http.annotation.Post; + +import javax.inject.Inject; + +@Controller("/greet") +public class GreetController { + + @Inject + private GreetingService greetingService; + + @Get("/{name}") + public String greet(String name) { + return greetingService.getGreeting() + name; + } + + @Post(value = "/{name}", consumes = MediaType.TEXT_PLAIN) + public String setGreeting(@Body String name) + { + return greetingService.getGreeting() + name; + } +} diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/EnglishGreetingService.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/EnglishGreetingService.java new file mode 100644 index 0000000000..81cc18c0ff --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/EnglishGreetingService.java @@ -0,0 +1,14 @@ +package com.baeldung.micronaut.server.service; + +import io.micronaut.context.annotation.Primary; + +import javax.inject.Singleton; + +@Primary +@Singleton +public class EnglishGreetingService implements GreetingService { + @Override + public String getGreeting() { + return "Hello "; + } +} diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/GreetingService.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/GreetingService.java new file mode 100644 index 0000000000..a27957566a --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/GreetingService.java @@ -0,0 +1,6 @@ +package com.baeldung.micronaut.server.service; + +public interface GreetingService { + + String getGreeting(); +} diff --git a/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/SpanishGreetingService.java b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/SpanishGreetingService.java new file mode 100644 index 0000000000..6ce6bfe8df --- /dev/null +++ b/micronaut/hello-world-server/src/main/java/com/baeldung/micronaut/server/service/SpanishGreetingService.java @@ -0,0 +1,11 @@ +package com.baeldung.micronaut.server.service; + +import javax.inject.Singleton; + +@Singleton +public class SpanishGreetingService implements GreetingService { + @Override + public String getGreeting() { + return "Hola "; + } +} diff --git a/micronaut/hello-world-server/src/main/java/hello/world/server/Application.java b/micronaut/hello-world-server/src/main/java/hello/world/server/Application.java deleted file mode 100644 index f0ce5e5d8c..0000000000 --- a/micronaut/hello-world-server/src/main/java/hello/world/server/Application.java +++ /dev/null @@ -1,10 +0,0 @@ -package hello.world.server; - -import io.micronaut.runtime.Micronaut; - -public class Application { - - public static void main(String[] args) { - Micronaut.run(Application.class); - } -} \ No newline at end of file diff --git a/micronaut/hello-world-server/src/main/java/hello/world/server/controller/GreetController.java b/micronaut/hello-world-server/src/main/java/hello/world/server/controller/GreetController.java deleted file mode 100644 index 2e55a39381..0000000000 --- a/micronaut/hello-world-server/src/main/java/hello/world/server/controller/GreetController.java +++ /dev/null @@ -1,23 +0,0 @@ -package hello.world.server.controller; - -import io.micronaut.http.annotation.Body; -import io.micronaut.http.annotation.Controller; -import io.micronaut.http.annotation.Get; -import io.micronaut.http.annotation.Post; - -@Controller("/greet") -public class GreetController { - - private String greeting = "Hello, "; - - @Get("/{name}") - public String greet(String name) { - return greeting + name; - } - - @Post - public void setGreeting(@Body String greeting) - { - this.greeting = greeting; - } -} diff --git a/micronaut/hello-world-server/src/test/java/com/baeldung/micronaut/client/GreetingClientTest.java b/micronaut/hello-world-server/src/test/java/com/baeldung/micronaut/client/GreetingClientTest.java new file mode 100644 index 0000000000..0c1634d01d --- /dev/null +++ b/micronaut/hello-world-server/src/test/java/com/baeldung/micronaut/client/GreetingClientTest.java @@ -0,0 +1,33 @@ +package com.baeldung.micronaut.client; + +import io.micronaut.context.ApplicationContext; +import io.micronaut.runtime.server.EmbeddedServer; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import static junit.framework.TestCase.assertEquals; + +public class GreetingClientTest { + private EmbeddedServer server; + private GreetingClient client; + + @Before + public void setup() + { + this.server = ApplicationContext.run(EmbeddedServer.class); + this.client = server.getApplicationContext().getBean(GreetingClient.class); + } + + @Test + public void shouldReturnName() { + String response = client.greet("Mike"); + assertEquals(response, "Hello Mike"); + } + + @After + public void cleanup() + { + this.server.stop(); + } +}