* BAEL-4811

* BAEL-4811 Add unit tests

* JAVA-8794: Upgrade Spring Boot to 2.6.1 in the parent-boot-2

* JAVA-8794: Upgrade spring-mybatis dependencies

* JAVA-8794: Make spring-boot-springdoc 2.6 compatible

* JAVA-8794: Add spring.mongodb.embedded.version property

* JAVA-8794: Upgrade spring-boot-environment cloud dependencies

* JAVA-8794: Set spring.mvc.pathmatch.matching-strategy property

* JAVA-8794: Update Spring Cloud dependencies

* JAVA-8794: allow-circular-references in spring-cloud-ribbon-client

* JAVA-8794: Replace deprecated ConfigFileApplicationContextInitializer

* JAVA-8794: Fix spring-resttemplate pom

* JAVA-8794: Use spring.mongodb.embedded.version=3.5.5

* JAVA-8794: Use spring.mongodb.embedded.version=3.5.5

* JAVA-8794: Fix circural dependencies in spring-security-web-boot-2

* JAVA-8794: Fix circural dependencies in spring-security-core

* JAVA-8794: Fix quart schema initialization

* JAVA-8794: Set spring.mvc.pathmatch.matching-strategy=ant-path-matcher

* JAVA-8794: Leave spring-kafka on Spring Boot 2.5.4

* JAVA-8794: Set spring.mongodb.embedded.version=3.5.5 in spring-jenkins-pipeline

* JAVA-8794: Update Spring Cloud version

* JAVA-8794: Update spring-cloud-zuul dependencies

* JAVA-8794: Update Spring Cloud version in spring-cloud-bus

* JAVA-8794: Set spring.mongodb.embedded.version=3.5.5 in spring-boot-persistence-mongodb

* JAVA-8794: Fix spring-data-jpa-query-2 dependencies

* JAVA-8794: Fix circular dependency issue in spring-security-web-thymeleaf

* JAVA-8794: Fix circular dependency issue in spring-session-redis

* JAVA-8794: Fix circular dependency issue in spring-boot-libraries-2

* JAVA-8794: Update spring-cloud-starter version

* JAVA-8794: Leave spring-zuul-rate-limiting on 2.4.7

* JAVA-8794: Ignore EnversFooBarAuditIntegrationTest

* BAEL-4811 Fix formatting

* BAEL-4811 Fix formatting

Co-authored-by: Krzysiek <krzysztofwoyke@gmail.com>
Co-authored-by: Loredana Crusoveanu <lore.crusoveanu@gmail.com>
This commit is contained in:
Amy DeGregorio 2021-12-19 14:53:05 -05:00 committed by GitHub
parent 77dcb8853f
commit 08433b1631
10 changed files with 154 additions and 148 deletions

View File

@ -4,6 +4,6 @@ import io.micronaut.runtime.Micronaut;
public class CompareApplication { public class CompareApplication {
public static void main(String[] args) { public static void main(String[] args) {
Micronaut.run(CompareApplication.class); Micronaut.run(CompareApplication.class);
} }
} }

View File

@ -6,18 +6,18 @@ import io.micronaut.http.client.annotation.Client;
@Client("/math") @Client("/math")
public interface ArithmeticClient { public interface ArithmeticClient {
@Get("/sum/{number1}/{number2}") @Get("/sum/{number1}/{number2}")
String sum(float number1, float number2); String sum(float number1, float number2);
@Get("/subtract/{number1}/{number2}") @Get("/subtract/{number1}/{number2}")
String subtract(float number1, float number2); String subtract(float number1, float number2);
@Get("/multiply/{number1}/{number2}") @Get("/multiply/{number1}/{number2}")
String multiply(float number1, float number2); String multiply(float number1, float number2);
@Get("/divide/{number1}/{number2}") @Get("/divide/{number1}/{number2}")
String divide(float number1, float number2); String divide(float number1, float number2);
@Get("/memory") @Get("/memory")
String memory(); String memory();
} }

View File

@ -8,34 +8,39 @@ import io.micronaut.http.client.annotation.Client;
@Singleton @Singleton
public class ArithmeticClientImpl { public class ArithmeticClientImpl {
private RxHttpClient httpClient; private RxHttpClient httpClient;
public ArithmeticClientImpl(@Client("/") RxHttpClient httpClient) { public ArithmeticClientImpl(@Client("/") RxHttpClient httpClient) {
this.httpClient = httpClient; this.httpClient = httpClient;
} }
public String sum(float number1, float number2) { public String sum(float number1, float number2) {
HttpRequest<String> req = HttpRequest.GET("/math/sum/" + number1 + "/" + number2); HttpRequest<String> req = HttpRequest.GET("/math/sum/" + number1 + "/" + number2);
return httpClient.retrieve(req).blockingFirst(); return httpClient.retrieve(req)
} .blockingFirst();
}
public String subtract(float number1, float number2) { public String subtract(float number1, float number2) {
HttpRequest<String> req = HttpRequest.GET("/math/subtract/" + number1 + "/" + number2); HttpRequest<String> req = HttpRequest.GET("/math/subtract/" + number1 + "/" + number2);
return httpClient.retrieve(req).blockingFirst(); return httpClient.retrieve(req)
} .blockingFirst();
}
public String multiply(float number1, float number2) { public String multiply(float number1, float number2) {
HttpRequest<String> req = HttpRequest.GET("/math/multiply/" + number1 + "/" + number2); HttpRequest<String> req = HttpRequest.GET("/math/multiply/" + number1 + "/" + number2);
return httpClient.retrieve(req).blockingFirst(); return httpClient.retrieve(req)
} .blockingFirst();
}
public String divide(float number1, float number2) { public String divide(float number1, float number2) {
HttpRequest<String> req = HttpRequest.GET("/math/divide/" + number1 + "/" + number2); HttpRequest<String> req = HttpRequest.GET("/math/divide/" + number1 + "/" + number2);
return httpClient.retrieve(req).blockingFirst(); return httpClient.retrieve(req)
} .blockingFirst();
}
public String memory() { public String memory() {
HttpRequest<String> req = HttpRequest.GET("/math/memory"); HttpRequest<String> req = HttpRequest.GET("/math/memory");
return httpClient.retrieve(req).blockingFirst(); return httpClient.retrieve(req)
} .blockingFirst();
}
} }

View File

@ -17,42 +17,42 @@ public class ArithmeticController {
@Get("/sum/{number1}/{number2}") @Get("/sum/{number1}/{number2}")
public float getSum(float number1, float number2) { public float getSum(float number1, float number2) {
return arithmeticService.add(number1, number2); return arithmeticService.add(number1, number2);
} }
@Get("/subtract/{number1}/{number2}") @Get("/subtract/{number1}/{number2}")
public float getDifference(float number1, float number2) { public float getDifference(float number1, float number2) {
return arithmeticService.subtract(number1, number2); return arithmeticService.subtract(number1, number2);
} }
@Get("/multiply/{number1}/{number2}") @Get("/multiply/{number1}/{number2}")
public float getMultiplication(float number1, float number2) { public float getMultiplication(float number1, float number2) {
return arithmeticService.multiply(number1, number2); return arithmeticService.multiply(number1, number2);
} }
@Get("/divide/{number1}/{number2}") @Get("/divide/{number1}/{number2}")
public float getDivision(float number1, float number2) { public float getDivision(float number1, float number2) {
return arithmeticService.divide(number1, number2); return arithmeticService.divide(number1, number2);
} }
@Get("/memory") @Get("/memory")
public String getMemoryStatus() { public String getMemoryStatus() {
MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean(); MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
String memoryStats = ""; String memoryStats = "";
String init = String.format("Initial: %.2f GB \n", String init = String.format("Initial: %.2f GB \n", (double) memoryBean.getHeapMemoryUsage()
(double)memoryBean.getHeapMemoryUsage().getInit() /1073741824); .getInit() / 1073741824);
String usedHeap = String.format("Used: %.2f GB \n", String usedHeap = String.format("Used: %.2f GB \n", (double) memoryBean.getHeapMemoryUsage()
(double)memoryBean.getHeapMemoryUsage().getUsed() /1073741824); .getUsed() / 1073741824);
String maxHeap = String.format("Max: %.2f GB \n", String maxHeap = String.format("Max: %.2f GB \n", (double) memoryBean.getHeapMemoryUsage()
(double)memoryBean.getHeapMemoryUsage().getMax() /1073741824); .getMax() / 1073741824);
String committed = String.format("Committed: %.2f GB \n", String committed = String.format("Committed: %.2f GB \n", (double) memoryBean.getHeapMemoryUsage()
(double)memoryBean.getHeapMemoryUsage().getCommitted() /1073741824); .getCommitted() / 1073741824);
memoryStats += init; memoryStats += init;
memoryStats += usedHeap; memoryStats += usedHeap;
memoryStats += maxHeap; memoryStats += maxHeap;
memoryStats += committed; memoryStats += committed;
return memoryStats; return memoryStats;
} }
} }

View File

@ -5,21 +5,21 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class ArithmeticService { public class ArithmeticService {
public float add(float number1, float number2) { public float add(float number1, float number2) {
return number1 + number2; return number1 + number2;
} }
public float subtract(float number1, float number2) { public float subtract(float number1, float number2) {
return number1 - number2; return number1 - number2;
} }
public float multiply(float number1, float number2) { public float multiply(float number1, float number2) {
return number1 * number2; return number1 * number2;
} }
public float divide(float number1, float number2) { public float divide(float number1, float number2) {
if (number2 == 0) { if (number2 == 0) {
throw new IllegalArgumentException("'number2' cannot be zero"); throw new IllegalArgumentException("'number2' cannot be zero");
} }
return number1 / number2; return number1 / number2;
} }
} }

View File

@ -13,15 +13,15 @@ import org.junit.Test;
import com.baeldung.micronaut.vs.springboot.client.ArithmeticClientImpl; import com.baeldung.micronaut.vs.springboot.client.ArithmeticClientImpl;
public class ArithmeticClientUnitTest { public class ArithmeticClientUnitTest {
private EmbeddedServer server; private EmbeddedServer server;
private ArithmeticClientImpl client; private ArithmeticClientImpl client;
@Before @Before
public void setup() { public void setup() {
server = ApplicationContext.run(EmbeddedServer.class); server = ApplicationContext.run(EmbeddedServer.class);
client = server.getApplicationContext().getBean(ArithmeticClientImpl.class); client = server.getApplicationContext()
.getBean(ArithmeticClientImpl.class);
} }
@After @After
@ -31,31 +31,31 @@ public class ArithmeticClientUnitTest {
@Test @Test
public void givenTwoNumbers_whenAdd_thenCorrectAnswerReturned() { public void givenTwoNumbers_whenAdd_thenCorrectAnswerReturned() {
String expected = Float.valueOf(10 + 20).toString(); String expected = Float.valueOf(10 + 20).toString();
assertEquals(expected, client.sum(10, 20)); assertEquals(expected, client.sum(10, 20));
} }
@Test @Test
public void givenTwoNumbers_whenSubtract_thenCorrectAnswerReturned() { public void givenTwoNumbers_whenSubtract_thenCorrectAnswerReturned() {
String expected = Float.valueOf(20 - 10).toString(); String expected = Float.valueOf(20 - 10).toString();
assertEquals(expected, client.subtract(20, 10)); assertEquals(expected, client.subtract(20, 10));
} }
@Test @Test
public void givenTwoNumbers_whenMultiply_thenCorrectAnswerReturned() { public void givenTwoNumbers_whenMultiply_thenCorrectAnswerReturned() {
String expected = Float.valueOf(10 * 20).toString(); String expected = Float.valueOf(10 * 20).toString();
assertEquals(expected, client.multiply(10, 20)); assertEquals(expected, client.multiply(10, 20));
} }
@Test @Test
public void givenTwoNumbers_whenDivide_thenCorrectAnswerReturned() { public void givenTwoNumbers_whenDivide_thenCorrectAnswerReturned() {
String expected = Float.valueOf(30 / 10).toString(); String expected = Float.valueOf(30 / 10).toString();
assertEquals(expected, client.divide(30, 10)); assertEquals(expected, client.divide(30, 10));
} }
@Test @Test
public void whenMemory_thenCorrectAnswerReturned() { public void whenMemory_thenCorrectAnswerReturned() {
String expected = "Initial:"; String expected = "Initial:";
assertThat(client.memory(), containsString(expected)); assertThat(client.memory(), containsString(expected));
} }
} }

View File

@ -7,7 +7,7 @@ import org.springframework.context.annotation.ComponentScan;
@EnableAutoConfiguration @EnableAutoConfiguration
@ComponentScan("com.baeldung.micronaut.vs.springboot") @ComponentScan("com.baeldung.micronaut.vs.springboot")
public class CompareApplication { public class CompareApplication {
public static void main(final String[] args) { public static void main(final String[] args) {
SpringApplication.run(CompareApplication.class, args); SpringApplication.run(CompareApplication.class, args);
} }
} }

View File

@ -42,7 +42,8 @@ public class ArithmeticController {
MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean(); MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
String memoryStats = ""; String memoryStats = "";
String init = String.format("Initial: %.2f GB \n", String init = String.format(
"Initial: %.2f GB \n",
(double)memoryBean.getHeapMemoryUsage().getInit() /1073741824); (double)memoryBean.getHeapMemoryUsage().getInit() /1073741824);
String usedHeap = String.format("Used: %.2f GB \n", String usedHeap = String.format("Used: %.2f GB \n",
(double)memoryBean.getHeapMemoryUsage().getUsed() /1073741824); (double)memoryBean.getHeapMemoryUsage().getUsed() /1073741824);

View File

@ -4,22 +4,22 @@ import org.springframework.stereotype.Service;
@Service @Service
public class ArithmeticService { public class ArithmeticService {
public float add(float number1, float number2) { public float add(float number1, float number2) {
return number1 + number2; return number1 + number2;
} }
public float subtract(float number1, float number2) { public float subtract(float number1, float number2) {
return number1 - number2; return number1 - number2;
} }
public float multiply(float number1, float number2) { public float multiply(float number1, float number2) {
return number1 * number2; return number1 * number2;
} }
public float divide(float number1, float number2) { public float divide(float number1, float number2) {
if (number2 == 0) { if (number2 == 0) {
throw new IllegalArgumentException("'number2' cannot be zero"); throw new IllegalArgumentException("'number2' cannot be zero");
} }
return number1 / number2; return number1 / number2;
} }
} }

View File

@ -19,50 +19,50 @@ import com.baeldung.micronaut.vs.springboot.CompareApplication;
@SpringBootTest(classes = CompareApplication.class) @SpringBootTest(classes = CompareApplication.class)
@AutoConfigureMockMvc @AutoConfigureMockMvc
public class ArithmeticControllerUnitTest { public class ArithmeticControllerUnitTest {
@Autowired @Autowired
private MockMvc mockMvc; private MockMvc mockMvc;
@Test @Test
public void givenTwoNumbers_whenAdd_thenCorrectAnswerReturned() throws Exception { public void givenTwoNumbers_whenAdd_thenCorrectAnswerReturned() throws Exception {
Float expected = Float.valueOf(10 + 20); Float expected = Float.valueOf(10 + 20);
this.mockMvc.perform(MockMvcRequestBuilders.get("/math/sum/10/20") this.mockMvc.perform(MockMvcRequestBuilders.get("/math/sum/10/20")
.accept(MediaType.APPLICATION_JSON)) .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(content().string(expected.toString())); .andExpect(content().string(expected.toString()));
} }
@Test @Test
public void givenTwoNumbers_whenSubtract_thenCorrectAnswerReturned() throws Exception { public void givenTwoNumbers_whenSubtract_thenCorrectAnswerReturned() throws Exception {
Float expected = Float.valueOf(20 - 10); Float expected = Float.valueOf(20 - 10);
this.mockMvc.perform(MockMvcRequestBuilders.get("/math/subtract/20/10") this.mockMvc.perform(MockMvcRequestBuilders.get("/math/subtract/20/10")
.accept(MediaType.APPLICATION_JSON)) .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(content().string(expected.toString())); .andExpect(content().string(expected.toString()));
} }
@Test @Test
public void givenTwoNumbers_whenMultiply_thenCorrectAnswerReturned() throws Exception { public void givenTwoNumbers_whenMultiply_thenCorrectAnswerReturned() throws Exception {
Float expected = Float.valueOf(20 * 10); Float expected = Float.valueOf(20 * 10);
this.mockMvc.perform(MockMvcRequestBuilders.get("/math/multiply/20/10") this.mockMvc.perform(MockMvcRequestBuilders.get("/math/multiply/20/10")
.accept(MediaType.APPLICATION_JSON)) .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(content().string(expected.toString())); .andExpect(content().string(expected.toString()));
} }
@Test @Test
public void givenTwoNumbers_whenDivide_thenCorrectAnswerReturned() throws Exception { public void givenTwoNumbers_whenDivide_thenCorrectAnswerReturned() throws Exception {
Float expected = Float.valueOf(20 / 10); Float expected = Float.valueOf(20 / 10);
this.mockMvc.perform(MockMvcRequestBuilders.get("/math/divide/20/10") this.mockMvc.perform(MockMvcRequestBuilders.get("/math/divide/20/10")
.accept(MediaType.APPLICATION_JSON)) .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(content().string(expected.toString())); .andExpect(content().string(expected.toString()));
} }
@Test @Test
public void whenMemory_thenMemoryStringReturned() throws Exception { public void whenMemory_thenMemoryStringReturned() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.get("/math/memory") this.mockMvc.perform(MockMvcRequestBuilders.get("/math/memory")
.accept(MediaType.APPLICATION_JSON)) .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(content().string(containsString("Initial:"))); .andExpect(content().string(containsString("Initial:")));
} }
} }