From 7434ce777532d074cd3cdba7123b244a1a296bbb Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 18 Dec 2019 22:11:41 +0100 Subject: [PATCH 1/9] BAEL-19928: Refactor spring-reactor module --- ...tion.java => NotificationApplication.java} | 18 ++++---------- .../consumer/NotificationConsumer.java | 2 +- .../controller/NotificationController.java | 2 +- .../{doman => domain}/NotificationData.java | 2 +- .../baeldung/service/NotificationService.java | 2 +- .../service/impl/NotificationServiceimpl.java | 2 +- .../java/com/baeldung/DataLoaderLiveTest.java | 14 ----------- ...otificationApplicationIntegrationTest.java | 24 +++++++++++++++++++ .../java/org/baeldung/SpringContextTest.java | 4 ++-- 9 files changed, 36 insertions(+), 34 deletions(-) rename spring-reactor/src/main/java/com/baeldung/{Application.java => NotificationApplication.java} (59%) rename spring-reactor/src/main/java/com/baeldung/{doman => domain}/NotificationData.java (95%) delete mode 100644 spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java create mode 100644 spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java diff --git a/spring-reactor/src/main/java/com/baeldung/Application.java b/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java similarity index 59% rename from spring-reactor/src/main/java/com/baeldung/Application.java rename to spring-reactor/src/main/java/com/baeldung/NotificationApplication.java index 9030d41d26..a15b2e1818 100644 --- a/spring-reactor/src/main/java/com/baeldung/Application.java +++ b/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java @@ -1,24 +1,16 @@ package com.baeldung; +import com.baeldung.consumer.NotificationConsumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - -import com.baeldung.consumer.NotificationConsumer; - +import org.springframework.boot.autoconfigure.SpringBootApplication; import reactor.bus.EventBus; import static reactor.bus.selector.Selectors.$; -@Configuration -@EnableAutoConfiguration -@ComponentScan -@Import(Config.class) -public class Application implements CommandLineRunner { +@SpringBootApplication +public class NotificationApplication implements CommandLineRunner { @Autowired private EventBus eventBus; @@ -32,7 +24,7 @@ public class Application implements CommandLineRunner { } public static void main(String[] args) { - SpringApplication.run(Application.class, args); + SpringApplication.run(NotificationApplication.class, args); } } diff --git a/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java b/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java index ca6a5b4303..56d038384a 100644 --- a/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java +++ b/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java @@ -3,7 +3,7 @@ package com.baeldung.consumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baeldung.doman.NotificationData; +import com.baeldung.domain.NotificationData; import com.baeldung.service.NotificationService; import reactor.bus.Event; diff --git a/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java b/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java index 8665f247b0..9d24b560cd 100644 --- a/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java +++ b/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java @@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; -import com.baeldung.doman.NotificationData; +import com.baeldung.domain.NotificationData; import reactor.bus.Event; import reactor.bus.EventBus; diff --git a/spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java b/spring-reactor/src/main/java/com/baeldung/domain/NotificationData.java similarity index 95% rename from spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java rename to spring-reactor/src/main/java/com/baeldung/domain/NotificationData.java index d6d7b02949..2fdb4299a4 100644 --- a/spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java +++ b/spring-reactor/src/main/java/com/baeldung/domain/NotificationData.java @@ -1,4 +1,4 @@ -package com.baeldung.doman; +package com.baeldung.domain; public class NotificationData { diff --git a/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java b/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java index f653b2162f..bb0e15b7eb 100644 --- a/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java +++ b/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java @@ -1,6 +1,6 @@ package com.baeldung.service; -import com.baeldung.doman.NotificationData; +import com.baeldung.domain.NotificationData; public interface NotificationService { diff --git a/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java b/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java index bf37741f6a..20a24a68fd 100644 --- a/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java +++ b/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java @@ -2,7 +2,7 @@ package com.baeldung.service.impl; import org.springframework.stereotype.Service; -import com.baeldung.doman.NotificationData; +import com.baeldung.domain.NotificationData; import com.baeldung.service.NotificationService; @Service diff --git a/spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java b/spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java deleted file mode 100644 index 5833bc277c..0000000000 --- a/spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung; - -import org.junit.Test; -import org.springframework.web.client.RestTemplate; - -public class DataLoaderLiveTest { - - @Test - public void exampleTest() { - RestTemplate restTemplate = new RestTemplate(); - restTemplate.getForObject("http://localhost:8080/startNotification/10", String.class); - } - -} diff --git a/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java b/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java new file mode 100644 index 0000000000..5ad9427397 --- /dev/null +++ b/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java @@ -0,0 +1,24 @@ +package com.baeldung; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.client.RestTemplate; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class NotificationApplicationIntegrationTest { + + @LocalServerPort + private int port; + + @Test + public void givenAppStarted_whenNotificationTasksSubmitted_thenProcessed() { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.getForObject("http://localhost:" + port + "/startNotification/10", String.class); + } + + +} diff --git a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java b/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java index 5e68a8e64f..bc8542c5ac 100644 --- a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java +++ b/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java @@ -5,10 +5,10 @@ import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.Application; +import com.baeldung.NotificationApplication; @RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) +@SpringBootTest(classes = NotificationApplication.class) public class SpringContextTest { @Test From dee493a6ebbc178e93d7ded7c6e6379f8f37c62e Mon Sep 17 00:00:00 2001 From: Krzysztof Woyke Date: Thu, 19 Dec 2019 08:28:26 +0100 Subject: [PATCH 2/9] BAEL-19928: Further minor improvements --- spring-reactor/src/main/java/com/baeldung/Config.java | 6 ++---- .../src/main/java/com/baeldung/NotificationApplication.java | 1 - .../baeldung/NotificationApplicationIntegrationTest.java | 2 -- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/spring-reactor/src/main/java/com/baeldung/Config.java b/spring-reactor/src/main/java/com/baeldung/Config.java index 28f40dda02..ac1bfb3945 100644 --- a/spring-reactor/src/main/java/com/baeldung/Config.java +++ b/spring-reactor/src/main/java/com/baeldung/Config.java @@ -2,7 +2,6 @@ package com.baeldung; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; - import reactor.Environment; import reactor.bus.EventBus; @@ -10,13 +9,12 @@ import reactor.bus.EventBus; public class Config { @Bean - Environment env() { + public Environment env() { return Environment.initializeIfEmpty().assignErrorJournal(); } @Bean - EventBus createEventBus(Environment env) { + public EventBus createEventBus(Environment env) { return EventBus.create(env, Environment.THREAD_POOL); } - } diff --git a/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java b/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java index a15b2e1818..6f0c8cdf96 100644 --- a/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java +++ b/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java @@ -26,5 +26,4 @@ public class NotificationApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(NotificationApplication.class, args); } - } diff --git a/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java b/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java index 5ad9427397..6f6b39b2d5 100644 --- a/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java +++ b/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java @@ -19,6 +19,4 @@ public class NotificationApplicationIntegrationTest { RestTemplate restTemplate = new RestTemplate(); restTemplate.getForObject("http://localhost:" + port + "/startNotification/10", String.class); } - - } From 5ecd92fd83d4e5afa7d7336c8baa5411ff3f8f7b Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 8 Jan 2020 20:41:16 +0100 Subject: [PATCH 3/9] BAEL-19928: Move code to com.baeldung.reactorbus package --- .../src/main/java/com/baeldung/{ => reactorbus}/Config.java | 2 +- .../baeldung/{ => reactorbus}/NotificationApplication.java | 4 ++-- .../{ => reactorbus}/consumer/NotificationConsumer.java | 6 +++--- .../{ => reactorbus}/controller/NotificationController.java | 4 ++-- .../baeldung/{ => reactorbus}/domain/NotificationData.java | 2 +- .../{ => reactorbus}/service/NotificationService.java | 4 ++-- .../service/impl/NotificationServiceimpl.java | 6 +++--- .../test/java/{org => com}/baeldung/SpringContextTest.java | 4 ++-- .../NotificationApplicationIntegrationTest.java | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/Config.java (93%) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/NotificationApplication.java (89%) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/consumer/NotificationConsumer.java (80%) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/controller/NotificationController.java (89%) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/domain/NotificationData.java (94%) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/service/NotificationService.java (58%) rename spring-reactor/src/main/java/com/baeldung/{ => reactorbus}/service/impl/NotificationServiceimpl.java (75%) rename spring-reactor/src/test/java/{org => com}/baeldung/SpringContextTest.java (83%) rename spring-reactor/src/test/java/com/baeldung/{ => reactorbus}/NotificationApplicationIntegrationTest.java (95%) diff --git a/spring-reactor/src/main/java/com/baeldung/Config.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java similarity index 93% rename from spring-reactor/src/main/java/com/baeldung/Config.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java index ac1bfb3945..f849215dc4 100644 --- a/spring-reactor/src/main/java/com/baeldung/Config.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.reactorbus; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java similarity index 89% rename from spring-reactor/src/main/java/com/baeldung/NotificationApplication.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java index 6f0c8cdf96..b315e6ce25 100644 --- a/spring-reactor/src/main/java/com/baeldung/NotificationApplication.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java @@ -1,6 +1,6 @@ -package com.baeldung; +package com.baeldung.reactorbus; -import com.baeldung.consumer.NotificationConsumer; +import com.baeldung.reactorbus.consumer.NotificationConsumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; diff --git a/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/consumer/NotificationConsumer.java similarity index 80% rename from spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/consumer/NotificationConsumer.java index 56d038384a..d9d2586187 100644 --- a/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/consumer/NotificationConsumer.java @@ -1,10 +1,10 @@ -package com.baeldung.consumer; +package com.baeldung.reactorbus.consumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baeldung.domain.NotificationData; -import com.baeldung.service.NotificationService; +import com.baeldung.reactorbus.domain.NotificationData; +import com.baeldung.reactorbus.service.NotificationService; import reactor.bus.Event; import reactor.fn.Consumer; diff --git a/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/controller/NotificationController.java similarity index 89% rename from spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/controller/NotificationController.java index 9d24b560cd..62a7b38662 100644 --- a/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/controller/NotificationController.java @@ -1,11 +1,11 @@ -package com.baeldung.controller; +package com.baeldung.reactorbus.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; -import com.baeldung.domain.NotificationData; +import com.baeldung.reactorbus.domain.NotificationData; import reactor.bus.Event; import reactor.bus.EventBus; diff --git a/spring-reactor/src/main/java/com/baeldung/domain/NotificationData.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java similarity index 94% rename from spring-reactor/src/main/java/com/baeldung/domain/NotificationData.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java index 2fdb4299a4..65d3559541 100644 --- a/spring-reactor/src/main/java/com/baeldung/domain/NotificationData.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java @@ -1,4 +1,4 @@ -package com.baeldung.domain; +package com.baeldung.reactorbus.domain; public class NotificationData { diff --git a/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/NotificationService.java similarity index 58% rename from spring-reactor/src/main/java/com/baeldung/service/NotificationService.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/service/NotificationService.java index bb0e15b7eb..dfcd03ed68 100644 --- a/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/NotificationService.java @@ -1,6 +1,6 @@ -package com.baeldung.service; +package com.baeldung.reactorbus.service; -import com.baeldung.domain.NotificationData; +import com.baeldung.reactorbus.domain.NotificationData; public interface NotificationService { diff --git a/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/impl/NotificationServiceimpl.java similarity index 75% rename from spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java rename to spring-reactor/src/main/java/com/baeldung/reactorbus/service/impl/NotificationServiceimpl.java index 20a24a68fd..aa305caaad 100644 --- a/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java +++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/impl/NotificationServiceimpl.java @@ -1,9 +1,9 @@ -package com.baeldung.service.impl; +package com.baeldung.reactorbus.service.impl; import org.springframework.stereotype.Service; -import com.baeldung.domain.NotificationData; -import com.baeldung.service.NotificationService; +import com.baeldung.reactorbus.domain.NotificationData; +import com.baeldung.reactorbus.service.NotificationService; @Service public class NotificationServiceimpl implements NotificationService { diff --git a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java b/spring-reactor/src/test/java/com/baeldung/SpringContextTest.java similarity index 83% rename from spring-reactor/src/test/java/org/baeldung/SpringContextTest.java rename to spring-reactor/src/test/java/com/baeldung/SpringContextTest.java index bc8542c5ac..68b6018433 100644 --- a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java +++ b/spring-reactor/src/test/java/com/baeldung/SpringContextTest.java @@ -1,11 +1,11 @@ -package org.baeldung; +package com.baeldung; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.NotificationApplication; +import com.baeldung.reactorbus.NotificationApplication; @RunWith(SpringRunner.class) @SpringBootTest(classes = NotificationApplication.class) diff --git a/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java b/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java similarity index 95% rename from spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java rename to spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java index 6f6b39b2d5..0adea21fd4 100644 --- a/spring-reactor/src/test/java/com/baeldung/NotificationApplicationIntegrationTest.java +++ b/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.reactorbus; import org.junit.Test; import org.junit.runner.RunWith; From 2db083ad630e75fc204c2b7b18793197e8b883c3 Mon Sep 17 00:00:00 2001 From: KevinGilmore Date: Tue, 25 Feb 2020 19:46:20 -0600 Subject: [PATCH 4/9] SCALA-38: move to new package and update README (#8773) * BAEL-3336 BAEL-3058 add links * BAEL-3319: add link * BAEL-3284: add link * BAEL-3198: add link to article * BAEL-3479: add link to article * BAEL-3485: add article link * SCALA-38: move to new package and add link back to article * SCALA-38: add imports back into unit test --- core-scala/README.md | 1 + .../scala/com/baeldung/scala/{ => regex}/RegexUnitTest.scala | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) rename core-scala/src/test/scala/com/baeldung/scala/{ => regex}/RegexUnitTest.scala (98%) diff --git a/core-scala/README.md b/core-scala/README.md index e6fc75d59e..13929ff721 100644 --- a/core-scala/README.md +++ b/core-scala/README.md @@ -5,3 +5,4 @@ This module contains articles about Scala's core features ### Relevant Articles: - [Introduction to Scala](https://www.baeldung.com/scala-intro) +- [Regular Expressions in Scala](https://www.baeldung.com/scala/regular-expressions) diff --git a/core-scala/src/test/scala/com/baeldung/scala/RegexUnitTest.scala b/core-scala/src/test/scala/com/baeldung/scala/regex/RegexUnitTest.scala similarity index 98% rename from core-scala/src/test/scala/com/baeldung/scala/RegexUnitTest.scala rename to core-scala/src/test/scala/com/baeldung/scala/regex/RegexUnitTest.scala index 94263d620a..27ed9e1172 100644 --- a/core-scala/src/test/scala/com/baeldung/scala/RegexUnitTest.scala +++ b/core-scala/src/test/scala/com/baeldung/scala/regex/RegexUnitTest.scala @@ -1,4 +1,4 @@ -package com.baeldung.scala +package com.baeldung.scala.regex import org.junit.Test import org.junit.Assert.assertEquals From 16b8a61b16a75ad2d80d8978cbf2c5dad7913c34 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Thu, 27 Feb 2020 22:12:39 +0200 Subject: [PATCH 5/9] BAEL-3185: Fixed container factory for partition listener --- .../main/java/com/baeldung/spring/kafka/KafkaApplication.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java index b313eafdb9..555b3de10b 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java @@ -158,7 +158,7 @@ public class KafkaApplication { latch.countDown(); } - @KafkaListener(topicPartitions = @TopicPartition(topic = "${partitioned.topic.name}", partitions = { "0", "3" })) + @KafkaListener(topicPartitions = @TopicPartition(topic = "${partitioned.topic.name}", partitions = { "0", "3" }), containerFactory = "partitionsKafkaListenerContainerFactory") public void listenToParition(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { System.out.println("Received Message: " + message + " from partition: " + partition); this.partitionLatch.countDown(); From 002b93792354c4f2e5095e7d02779c06c4927442 Mon Sep 17 00:00:00 2001 From: Sorin Zamfir Date: Thu, 27 Feb 2020 22:14:17 +0200 Subject: [PATCH 6/9] BAEL-3185: Fixed formatting --- .../spring/kafka/KafkaApplication.java | 10 +++++---- .../spring/kafka/KafkaConsumerConfig.java | 6 ++--- .../spring/kafka/KafkaProducerConfig.java | 6 ++--- .../spring/kafka/KafkaTopicConfig.java | 22 +++++++++---------- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java index 555b3de10b..fde56bebc0 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java @@ -25,7 +25,7 @@ public class KafkaApplication { public static void main(String[] args) throws Exception { ConfigurableApplicationContext context = SpringApplication.run(KafkaApplication.class, args); - + MessageProducer producer = context.getBean(MessageProducer.class); MessageListener listener = context.getBean(MessageListener.class); /* @@ -101,15 +101,17 @@ public class KafkaApplication { private String greetingTopicName; public void sendMessage(String message) { - + ListenableFuture> future = kafkaTemplate.send(topicName, message); - + future.addCallback(new ListenableFutureCallback>() { @Override public void onSuccess(SendResult result) { - System.out.println("Sent message=[" + message + "] with offset=[" + result.getRecordMetadata().offset() + "]"); + System.out.println("Sent message=[" + message + "] with offset=[" + result.getRecordMetadata() + .offset() + "]"); } + @Override public void onFailure(Throwable ex) { System.out.println("Unable to send message=[" + message + "] due to : " + ex.getMessage()); diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java index 933d2353aa..abaa431eec 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java @@ -29,7 +29,7 @@ public class KafkaConsumerConfig { props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); return new DefaultKafkaConsumerFactory<>(props); } - + public ConcurrentKafkaListenerContainerFactory kafkaListenerContainerFactory(String groupId) { ConcurrentKafkaListenerContainerFactory factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory(groupId)); @@ -50,12 +50,12 @@ public class KafkaConsumerConfig { public ConcurrentKafkaListenerContainerFactory headersKafkaListenerContainerFactory() { return kafkaListenerContainerFactory("headers"); } - + @Bean public ConcurrentKafkaListenerContainerFactory partitionsKafkaListenerContainerFactory() { return kafkaListenerContainerFactory("partitions"); } - + @Bean public ConcurrentKafkaListenerContainerFactory filterKafkaListenerContainerFactory() { ConcurrentKafkaListenerContainerFactory factory = kafkaListenerContainerFactory("filter"); diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java index 7e2527b36e..0223bab0fe 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java @@ -32,7 +32,7 @@ public class KafkaProducerConfig { public KafkaTemplate kafkaTemplate() { return new KafkaTemplate<>(producerFactory()); } - + @Bean public ProducerFactory greetingProducerFactory() { Map configProps = new HashMap<>(); @@ -41,10 +41,10 @@ public class KafkaProducerConfig { configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class); return new DefaultKafkaProducerFactory<>(configProps); } - + @Bean public KafkaTemplate greetingKafkaTemplate() { return new KafkaTemplate<>(greetingProducerFactory()); } - + } diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java index a3426e78a3..fb60fadde4 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java @@ -12,10 +12,10 @@ import org.springframework.kafka.core.KafkaAdmin; @Configuration public class KafkaTopicConfig { - + @Value(value = "${kafka.bootstrapAddress}") private String bootstrapAddress; - + @Value(value = "${message.topic.name}") private String topicName; @@ -27,31 +27,31 @@ public class KafkaTopicConfig { @Value(value = "${greeting.topic.name}") private String greetingTopicName; - + @Bean public KafkaAdmin kafkaAdmin() { Map configs = new HashMap<>(); configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress); return new KafkaAdmin(configs); } - + @Bean public NewTopic topic1() { - return new NewTopic(topicName, 1, (short) 1); + return new NewTopic(topicName, 1, (short) 1); } - + @Bean public NewTopic topic2() { - return new NewTopic(partionedTopicName, 6, (short) 1); + return new NewTopic(partionedTopicName, 6, (short) 1); } - + @Bean public NewTopic topic3() { - return new NewTopic(filteredTopicName, 1, (short) 1); + return new NewTopic(filteredTopicName, 1, (short) 1); } - + @Bean public NewTopic topic4() { - return new NewTopic(greetingTopicName, 1, (short) 1); + return new NewTopic(greetingTopicName, 1, (short) 1); } } From 68ddd13015127b2c46a26476e88798fc49654ac9 Mon Sep 17 00:00:00 2001 From: kwoyke Date: Fri, 28 Feb 2020 02:39:07 +0100 Subject: [PATCH 7/9] JAVA-853: Move remaining spring-boot into spring-boot-modules (#8778) * JAVA-853: Move remaining spring-boot into spring-boot-modules * JAVA-853: Update README * JAVA-853: Fix relativePath attributes in spring-boot-parent/* modules --- .../spring-boot-parent/spring-boot-with-custom-parent/pom.xml | 2 +- .../spring-boot-parent/spring-boot-with-starter-parent/pom.xml | 2 +- spring-boot-modules/spring-boot/README.MD | 1 + ...pringBootBeanDefinitionOverrideExceptionIntegrationTest.java | 0 .../beandefinitionoverrideexception/TestConfiguration1.java | 0 .../beandefinitionoverrideexception/TestConfiguration2.java | 0 6 files changed, 3 insertions(+), 2 deletions(-) rename {spring-boot => spring-boot-modules/spring-boot}/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java (100%) rename {spring-boot => spring-boot-modules/spring-boot}/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java (100%) rename {spring-boot => spring-boot-modules/spring-boot}/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java (100%) diff --git a/spring-boot-modules/spring-boot-parent/spring-boot-with-custom-parent/pom.xml b/spring-boot-modules/spring-boot-parent/spring-boot-with-custom-parent/pom.xml index 1eb4255c7e..d08384e34c 100644 --- a/spring-boot-modules/spring-boot-parent/spring-boot-with-custom-parent/pom.xml +++ b/spring-boot-modules/spring-boot-parent/spring-boot-with-custom-parent/pom.xml @@ -11,7 +11,7 @@ com.baeldung parent-boot-2 0.0.1-SNAPSHOT - ../../parent-boot-2 + ../../../parent-boot-2 diff --git a/spring-boot-modules/spring-boot-parent/spring-boot-with-starter-parent/pom.xml b/spring-boot-modules/spring-boot-parent/spring-boot-with-starter-parent/pom.xml index 05c61fc4cc..baba410b39 100644 --- a/spring-boot-modules/spring-boot-parent/spring-boot-with-starter-parent/pom.xml +++ b/spring-boot-modules/spring-boot-parent/spring-boot-with-starter-parent/pom.xml @@ -12,7 +12,7 @@ com.baeldung parent-boot-2 0.0.1-SNAPSHOT - ../../parent-boot-2 + ../../../parent-boot-2 diff --git a/spring-boot-modules/spring-boot/README.MD b/spring-boot-modules/spring-boot/README.MD index 217d9e90b2..d010b96860 100644 --- a/spring-boot-modules/spring-boot/README.MD +++ b/spring-boot-modules/spring-boot/README.MD @@ -31,3 +31,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Spring Shutdown Callbacks](https://www.baeldung.com/spring-shutdown-callbacks) - [Container Configuration in Spring Boot 2](https://www.baeldung.com/embeddedservletcontainercustomizer-configurableembeddedservletcontainer-spring-boot) - [Validation in Spring Boot](https://www.baeldung.com/spring-boot-bean-validation) +- [The BeanDefinitionOverrideException in Spring Boot](https://www.baeldung.com/spring-boot-bean-definition-override-exception) diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java b/spring-boot-modules/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java similarity index 100% rename from spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java rename to spring-boot-modules/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/SpringBootBeanDefinitionOverrideExceptionIntegrationTest.java diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java b/spring-boot-modules/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java similarity index 100% rename from spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java rename to spring-boot-modules/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration1.java diff --git a/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java b/spring-boot-modules/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java similarity index 100% rename from spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java rename to spring-boot-modules/spring-boot/src/test/java/com/baeldung/beandefinitionoverrideexception/TestConfiguration2.java From 107bf079f94979dc356fd6af1ef34331f7c5f484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Dupire?= Date: Fri, 28 Feb 2020 08:26:22 +0100 Subject: [PATCH 8/9] Enabling spring-cloud-security module (#8783) --- spring-cloud/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud/pom.xml b/spring-cloud/pom.xml index 23ad11b03f..c4e606e190 100644 --- a/spring-cloud/pom.xml +++ b/spring-cloud/pom.xml @@ -35,7 +35,7 @@ spring-cloud-archaius spring-cloud-functions spring-cloud-vault - + spring-cloud-security spring-cloud-task spring-cloud-zuul spring-cloud-zuul-fallback From b1feb51814864994ba24a57dc49391bea3fb6247 Mon Sep 17 00:00:00 2001 From: Sampada <46674082+sampada07@users.noreply.github.com> Date: Sat, 29 Feb 2020 04:57:31 +0530 Subject: [PATCH 9/9] BAEL-3592 : updated tests, added getter and setter for name (#8787) * BAEL-3592: Comparison of Spring Beans and Java Enterprise Beans * BAEL-3592 : updated tests, added getter and setter for name * BAEL-3592 : removed unnecessary file --- .../comparison/ejb/singleton/CounterEJB.java | 9 ++++ .../ejb/singleton/CounterEJBRemote.java | 2 + .../ejb/stateful/ShoppingCartEJB.java | 9 +++- .../ejb/stateful/ShoppingCartEJBRemote.java | 4 ++ .../spring/singleton/CounterBean.java | 10 ++++ .../spring/stateful/ShoppingCartBean.java | 8 +++ .../spring/comparison/ejb/EJBUnitTest.java | 52 +++++++++---------- .../comparison/spring/SpringUnitTest.java | 44 ++++++++-------- 8 files changed, 88 insertions(+), 50 deletions(-) diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java index b64005aed8..8582d79662 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java @@ -6,9 +6,18 @@ import javax.ejb.Singleton; public class CounterEJB implements CounterEJBRemote { private int count = 1; + private String name; public int count() { return count++; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } \ No newline at end of file diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java index ec3b9e9f6b..a66cda4f3e 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java @@ -5,4 +5,6 @@ import javax.ejb.Remote; @Remote public interface CounterEJBRemote { int count(); + String getName(); + void setName(String name); } diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java index 5bdccea994..501af4059f 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java @@ -7,7 +7,7 @@ import javax.ejb.Stateful; @Stateful public class ShoppingCartEJB implements ShoppingCartEJBRemote { - + private String name; private List shoppingCart; public ShoppingCartEJB() { @@ -22,4 +22,11 @@ public class ShoppingCartEJB implements ShoppingCartEJBRemote { return shoppingCart; } + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } } diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java index a8d7a15d25..4e1e407520 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java @@ -10,4 +10,8 @@ public interface ShoppingCartEJBRemote { void addItem(String item); List getItems(); + + void setName(String name); + + String getName(); } diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java index 6456cfc007..c28e7bf74c 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java @@ -5,8 +5,18 @@ import org.springframework.stereotype.Component; @Component public class CounterBean { private int count = 1; + private String name; public int count() { return count++; } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java index 9286ff9950..4d372baa84 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class ShoppingCartBean { + private String name; private List shoppingCart; public ShoppingCartBean() { @@ -25,4 +26,11 @@ public class ShoppingCartBean { return shoppingCart; } + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } } diff --git a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java index 1f0f1bf8a4..3e9e5e7933 100644 --- a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java +++ b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java @@ -1,9 +1,7 @@ package com.baeldung.ejb.spring.comparison.ejb; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import javax.annotation.Resource; import javax.ejb.EJB; @@ -51,7 +49,7 @@ public class EJBUnitTest { public static void start() throws NamingException { ejbContainer = EJBContainer.createEJBContainer(); } - + @Before public void initializeContext() throws NamingException { context = ejbContainer.getContext(); @@ -60,42 +58,44 @@ public class EJBUnitTest { @Test public void givenSingletonBean_whenCounterInvoked_thenCountIsIncremented() throws NamingException { - + int count = 0; - CounterEJBRemote counterEJB = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB"); + CounterEJBRemote firstCounter = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB"); + firstCounter.setName("first"); - for (int i = 0; i < 10; i++) - count = counterEJB.count(); - - assertThat(count, is(not(1))); - } - - @Test - public void givenSingletonBean_whenCounterInvokedAgain_thenCountIsIncremented() throws NamingException { - - CounterEJBRemote counterEJB = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB"); + for (int i = 0; i < 10; i++) { + count = firstCounter.count(); + } - int count = 0; - for (int i = 0; i < 10; i++) - count = counterEJB.count(); + assertEquals(10, count); + assertEquals("first", firstCounter.getName()); + + CounterEJBRemote secondCounter = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB"); + + int count2 = 0; + for (int i = 0; i < 10; i++) { + count2 = secondCounter.count(); + } + + assertEquals(20, count2); + assertEquals("first", secondCounter.getName()); - assertThat(count, is(not(1))); } @Test public void givenStatefulBean_whenBathingCartWithThreeItemsAdded_thenItemsSizeIsThree() throws NamingException { ShoppingCartEJBRemote bathingCart = (ShoppingCartEJBRemote) context.lookup("java:global/ejb-beans/ShoppingCartEJB"); + bathingCart.setName("bathingCart"); + bathingCart.addItem("soap"); bathingCart.addItem("shampoo"); bathingCart.addItem("oil"); assertEquals(3, bathingCart.getItems() .size()); - } + assertEquals("bathingCart", bathingCart.getName()); - @Test - public void givenStatefulBean_whenFruitCartWithTwoItemsAdded_thenItemsSizeIsTwo() throws NamingException { ShoppingCartEJBRemote fruitCart = (ShoppingCartEJBRemote) context.lookup("java:global/ejb-beans/ShoppingCartEJB"); fruitCart.addItem("apples"); @@ -103,6 +103,7 @@ public class EJBUnitTest { assertEquals(2, fruitCart.getItems() .size()); + assertNull(fruitCart.getName()); } @Test @@ -131,10 +132,7 @@ public class EJBUnitTest { } @AfterClass - public static void checkTotalCountAndcloseContext() throws NamingException { - CounterEJBRemote counterEJB = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB"); - assertEquals(21, counterEJB.count()); - + public static void closeContext() throws NamingException { context.close(); ejbContainer.close(); } diff --git a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java index a346baba38..7a9ddc15a4 100644 --- a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java +++ b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java @@ -1,9 +1,7 @@ package com.baeldung.ejb.spring.comparison.spring; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import javax.naming.NamingException; @@ -46,40 +44,44 @@ public class SpringUnitTest { @Test public void whenCounterInvoked_thenCountIsIncremented() throws NamingException { - CounterBean counterBean = context.getBean(CounterBean.class); + CounterBean firstCounter = context.getBean(CounterBean.class); + firstCounter.setName("first"); int count = 0; - for (int i = 0; i < 10; i++) - count = counterBean.count(); + for (int i = 0; i < 10; i++) { + count = firstCounter.count(); + } - assertThat(count, is(not(1))); - } + assertEquals(10, count); + assertEquals("first", firstCounter.getName()); - @Test - public void whenCounterInvokedAgain_thenCountIsIncremented() throws NamingException { - CounterBean counterBean = context.getBean(CounterBean.class); + CounterBean secondCounter = context.getBean(CounterBean.class); - int count = 0; - for (int i = 0; i < 10; i++) - count = counterBean.count(); + int count2 = 0; + for (int i = 0; i < 10; i++) { + count2 = secondCounter.count(); + } + + assertEquals(20, count2); + assertEquals("first", secondCounter.getName()); - assertThat(count, is(not(1))); } @Test public void whenBathingCartWithThreeItemsAdded_thenItemsSizeIsThree() throws NamingException { ShoppingCartBean bathingCart = context.getBean(ShoppingCartBean.class); + bathingCart.setName("bathingCart"); + bathingCart.addItem("soap"); bathingCart.addItem("shampoo"); bathingCart.addItem("oil"); assertEquals(3, bathingCart.getItems() .size()); - } - @Test - public void whenFruitCartWithTwoItemsAdded_thenItemsSizeIsTwo() throws NamingException { + assertEquals("bathingCart", bathingCart.getName()); + ShoppingCartBean fruitCart = context.getBean(ShoppingCartBean.class); fruitCart.addItem("apples"); @@ -87,6 +89,7 @@ public class SpringUnitTest { assertEquals(2, fruitCart.getItems() .size()); + assertNull(fruitCart.getName()); } @Test @@ -98,10 +101,7 @@ public class SpringUnitTest { } @AfterClass - public static void checkTotalCountAndcloseContext() throws NamingException { - CounterBean counterBean = context.getBean(CounterBean.class); - int count = counterBean.count(); - assertEquals(21, count); + public static void closeContext() throws NamingException { context.close(); }