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
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
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
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();
}
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..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());
@@ -158,7 +160,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();
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);
}
}
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 76%
rename from spring-reactor/src/main/java/com/baeldung/Config.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java
index 28f40dda02..f849215dc4 100644
--- a/spring-reactor/src/main/java/com/baeldung/Config.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java
@@ -1,8 +1,7 @@
-package com.baeldung;
+package com.baeldung.reactorbus;
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/Application.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java
similarity index 52%
rename from spring-reactor/src/main/java/com/baeldung/Application.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java
index 9030d41d26..b315e6ce25 100644
--- a/spring-reactor/src/main/java/com/baeldung/Application.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java
@@ -1,24 +1,16 @@
-package com.baeldung;
+package com.baeldung.reactorbus;
+import com.baeldung.reactorbus.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,6 @@ 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/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 ca6a5b4303..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.doman.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 8665f247b0..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.doman.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/doman/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/doman/NotificationData.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java
index d6d7b02949..65d3559541 100644
--- a/spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java
@@ -1,4 +1,4 @@
-package com.baeldung.doman;
+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 f653b2162f..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.doman.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 bf37741f6a..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.doman.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/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/org/baeldung/SpringContextTest.java b/spring-reactor/src/test/java/com/baeldung/SpringContextTest.java
similarity index 71%
rename from spring-reactor/src/test/java/org/baeldung/SpringContextTest.java
rename to spring-reactor/src/test/java/com/baeldung/SpringContextTest.java
index 5e68a8e64f..68b6018433 100644
--- a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java
+++ b/spring-reactor/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,14 +1,14 @@
-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.Application;
+import com.baeldung.reactorbus.NotificationApplication;
@RunWith(SpringRunner.class)
-@SpringBootTest(classes = Application.class)
+@SpringBootTest(classes = NotificationApplication.class)
public class SpringContextTest {
@Test
diff --git a/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java b/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java
new file mode 100644
index 0000000000..0adea21fd4
--- /dev/null
+++ b/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java
@@ -0,0 +1,22 @@
+package com.baeldung.reactorbus;
+
+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);
+ }
+}