Skip to content

Commit 609cd8c

Browse files
update project name + spring versions
1 parent eb597ec commit 609cd8c

File tree

14 files changed

+86
-74
lines changed

14 files changed

+86
-74
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ env:
2020
- PROJECT_DIR=spring-kafka-json
2121
- PROJECT_DIR=spring-kafka-multiple-topics
2222
- PROJECT_DIR=spring-kafka-spring-integration-helloworld
23-
- PROJECT_DIR=spring-kafka-test-embedded
23+
- PROJECT_DIR=spring-kafka-unit-test-classrule
2424

2525
script:
2626
- cd $PROJECT_DIR

spring-kafka-test-embedded/README.md

-7
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# spring-kafka-unit-test-classrule
2+
3+
[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=com.codenotfound%3Aspring-kafka-unit-test-classrule&metric=alert_status)](https://sonarcloud.io/dashboard?id=com.codenotfound%3Aspring-kafka-unit-test-classrule)
4+
5+
A detailed step-by-step tutorial on how to unit test your Spring Kafka application using an embedded broker.
6+
7+
[https://codenotfound.com/spring-kafka-embedded-unit-test-example.html](https://codenotfound.com/spring-kafka-embedded-unit-test-example.html)

spring-kafka-test-embedded/pom.xml renamed to spring-kafka-unit-test-classrule/pom.xml

+14-16
Original file line numberDiff line numberDiff line change
@@ -4,57 +4,55 @@
44
<modelVersion>4.0.0</modelVersion>
55

66
<groupId>com.codenotfound</groupId>
7-
<artifactId>spring-kafka-test-embedded</artifactId>
7+
<artifactId>spring-kafka-unit-test-classrule</artifactId>
88
<version>0.0.1-SNAPSHOT</version>
99

10-
<name>spring-kafka-test-embedded</name>
11-
<description>Spring Kafka - Embedded Unit Test Example</description>
12-
<url>https://www.codenotfound.com/spring-kafka-embedded-unit-test-example.html</url>
10+
<name>spring-kafka-unit-test-classrule</name>
11+
<description>Spring Kafka Embedded Unit Test Example</description>
12+
<url>https://codenotfound.com/spring-kafka-embedded-unit-test-example.html</url>
1313

1414
<parent>
1515
<groupId>org.springframework.boot</groupId>
1616
<artifactId>spring-boot-starter-parent</artifactId>
17-
<version>1.5.4.RELEASE</version>
17+
<version>2.1.0.RELEASE</version>
18+
<relativePath /> <!-- lookup parent from repository -->
1819
</parent>
1920

2021
<properties>
22+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2124
<java.version>1.8</java.version>
22-
23-
<spring-kafka.version>1.2.2.RELEASE</spring-kafka.version>
2425
</properties>
2526

2627
<dependencies>
27-
<!-- spring-boot -->
2828
<dependency>
2929
<groupId>org.springframework.boot</groupId>
3030
<artifactId>spring-boot-starter</artifactId>
3131
</dependency>
32+
<dependency>
33+
<groupId>org.springframework.kafka</groupId>
34+
<artifactId>spring-kafka</artifactId>
35+
</dependency>
36+
3237
<dependency>
3338
<groupId>org.springframework.boot</groupId>
3439
<artifactId>spring-boot-starter-test</artifactId>
3540
<scope>test</scope>
3641
</dependency>
37-
<!-- spring-kafka -->
38-
<dependency>
39-
<groupId>org.springframework.kafka</groupId>
40-
<artifactId>spring-kafka</artifactId>
41-
<version>${spring-kafka.version}</version>
42-
</dependency>
4342
<dependency>
4443
<groupId>org.springframework.kafka</groupId>
4544
<artifactId>spring-kafka-test</artifactId>
46-
<version>${spring-kafka.version}</version>
4745
<scope>test</scope>
4846
</dependency>
4947
</dependencies>
5048

5149
<build>
5250
<plugins>
53-
<!-- spring-boot-maven-plugin -->
5451
<plugin>
5552
<groupId>org.springframework.boot</groupId>
5653
<artifactId>spring-boot-maven-plugin</artifactId>
5754
</plugin>
5855
</plugins>
5956
</build>
57+
6058
</project>

spring-kafka-test-embedded/src/main/java/com/codenotfound/kafka/consumer/Receiver.java renamed to spring-kafka-unit-test-classrule/src/main/java/com/codenotfound/kafka/consumer/Receiver.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package com.codenotfound.kafka.consumer;
22

33
import java.util.concurrent.CountDownLatch;
4-
54
import org.slf4j.Logger;
65
import org.slf4j.LoggerFactory;
76
import org.springframework.kafka.annotation.KafkaListener;
87

98
public class Receiver {
109

11-
private static final Logger LOGGER = LoggerFactory.getLogger(Receiver.class);
10+
private static final Logger LOGGER =
11+
LoggerFactory.getLogger(Receiver.class);
1212

1313
private CountDownLatch latch = new CountDownLatch(1);
1414

1515
public CountDownLatch getLatch() {
1616
return latch;
1717
}
1818

19-
@KafkaListener(topics = "${kafka.topic.receiver}")
19+
@KafkaListener(topics = "receiver.t")
2020
public void receive(String payload) {
2121
LOGGER.info("received payload='{}'", payload);
2222
latch.countDown();

spring-kafka-test-embedded/src/main/java/com/codenotfound/kafka/consumer/ReceiverConfig.java renamed to spring-kafka-unit-test-classrule/src/main/java/com/codenotfound/kafka/consumer/ReceiverConfig.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22

33
import java.util.HashMap;
44
import java.util.Map;
5-
65
import org.apache.kafka.clients.consumer.ConsumerConfig;
76
import org.apache.kafka.common.serialization.StringDeserializer;
87
import org.springframework.beans.factory.annotation.Value;
98
import org.springframework.context.annotation.Bean;
109
import org.springframework.context.annotation.Configuration;
1110
import org.springframework.kafka.annotation.EnableKafka;
1211
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
12+
import org.springframework.kafka.config.KafkaListenerContainerFactory;
1313
import org.springframework.kafka.core.ConsumerFactory;
1414
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
15+
import org.springframework.kafka.listener.ConcurrentMessageListenerContainer;
1516

1617
@Configuration
1718
@EnableKafka
@@ -23,9 +24,12 @@ public class ReceiverConfig {
2324
@Bean
2425
public Map<String, Object> consumerConfigs() {
2526
Map<String, Object> props = new HashMap<>();
26-
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
27-
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
28-
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
27+
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
28+
bootstrapServers);
29+
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
30+
StringDeserializer.class);
31+
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
32+
StringDeserializer.class);
2933
props.put(ConsumerConfig.GROUP_ID_CONFIG, "reveiver");
3034

3135
return props;
@@ -37,7 +41,7 @@ public ConsumerFactory<String, String> consumerFactory() {
3741
}
3842

3943
@Bean
40-
public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {
44+
public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() {
4145
ConcurrentKafkaListenerContainerFactory<String, String> factory =
4246
new ConcurrentKafkaListenerContainerFactory<>();
4347
factory.setConsumerFactory(consumerFactory());

spring-kafka-test-embedded/src/main/java/com/codenotfound/kafka/producer/Sender.java renamed to spring-kafka-unit-test-classrule/src/main/java/com/codenotfound/kafka/producer/Sender.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77

88
public class Sender {
99

10-
private static final Logger LOGGER = LoggerFactory.getLogger(Sender.class);
10+
private static final Logger LOGGER =
11+
LoggerFactory.getLogger(Sender.class);
1112

1213
@Autowired
1314
private KafkaTemplate<String, String> kafkaTemplate;
1415

15-
public void send(String topic, String payload) {
16-
LOGGER.info("sending payload='{}' to topic='{}'", payload, topic);
17-
kafkaTemplate.send(topic, payload);
16+
public void send(String payload) {
17+
LOGGER.info("sending payload='{}'", payload);
18+
kafkaTemplate.send("sender.t", payload);
1819
}
1920
}

spring-kafka-test-embedded/src/main/java/com/codenotfound/kafka/producer/SenderConfig.java renamed to spring-kafka-unit-test-classrule/src/main/java/com/codenotfound/kafka/producer/SenderConfig.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.HashMap;
44
import java.util.Map;
5-
65
import org.apache.kafka.clients.producer.ProducerConfig;
76
import org.apache.kafka.common.serialization.StringSerializer;
87
import org.springframework.beans.factory.annotation.Value;
@@ -21,9 +20,12 @@ public class SenderConfig {
2120
@Bean
2221
public Map<String, Object> producerConfigs() {
2322
Map<String, Object> props = new HashMap<>();
24-
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
25-
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
26-
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
23+
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
24+
bootstrapServers);
25+
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
26+
StringSerializer.class);
27+
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
28+
StringSerializer.class);
2729

2830
return props;
2931
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
kafka:
22
bootstrap-servers: localhost:9092
3-
topic:
4-
receiver: receiver.t

spring-kafka-test-embedded/src/main/resources/logback.xml renamed to spring-kafka-unit-test-classrule/src/main/resources/logback.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
44
<encoder>
5-
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
6-
</pattern>
5+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
76
</encoder>
87
</appender>
98

109
<logger name="com.codenotfound" level="DEBUG" />
1110
<logger name="org.springframework" level="WARN" />
11+
<logger name="org.apache.kafka.test.TestUtils" level="OFF" />
1212

1313
<root level="WARN">
1414
<appender-ref ref="STDOUT" />

spring-kafka-test-embedded/src/test/java/com/codenotfound/kafka/consumer/SpringKafkaReceiverTest.java renamed to spring-kafka-unit-test-classrule/src/test/java/com/codenotfound/kafka/consumer/SpringKafkaReceiverTest.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package com.codenotfound.kafka.consumer;
22

33
import static org.assertj.core.api.Assertions.assertThat;
4-
54
import java.util.Map;
65
import java.util.concurrent.TimeUnit;
7-
86
import org.junit.Before;
97
import org.junit.ClassRule;
108
import org.junit.Test;
@@ -18,7 +16,7 @@
1816
import org.springframework.kafka.core.KafkaTemplate;
1917
import org.springframework.kafka.core.ProducerFactory;
2018
import org.springframework.kafka.listener.MessageListenerContainer;
21-
import org.springframework.kafka.test.rule.KafkaEmbedded;
19+
import org.springframework.kafka.test.rule.EmbeddedKafkaRule;
2220
import org.springframework.kafka.test.utils.ContainerTestUtils;
2321
import org.springframework.kafka.test.utils.KafkaTestUtils;
2422
import org.springframework.test.annotation.DirtiesContext;
@@ -29,7 +27,8 @@
2927
@DirtiesContext
3028
public class SpringKafkaReceiverTest {
3129

32-
private static final Logger LOGGER = LoggerFactory.getLogger(SpringKafkaReceiverTest.class);
30+
private static final Logger LOGGER =
31+
LoggerFactory.getLogger(SpringKafkaReceiverTest.class);
3332

3433
private static String RECEIVER_TOPIC = "receiver.t";
3534

@@ -42,17 +41,20 @@ public class SpringKafkaReceiverTest {
4241
private KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry;
4342

4443
@ClassRule
45-
public static KafkaEmbedded embeddedKafka = new KafkaEmbedded(1, true, RECEIVER_TOPIC);
44+
public static EmbeddedKafkaRule embeddedKafka =
45+
new EmbeddedKafkaRule(1, true, RECEIVER_TOPIC);
4646

4747
@Before
4848
public void setUp() throws Exception {
4949
// set up the Kafka producer properties
5050
Map<String, Object> senderProperties =
51-
KafkaTestUtils.senderProps(embeddedKafka.getBrokersAsString());
51+
KafkaTestUtils.senderProps(
52+
embeddedKafka.getEmbeddedKafka().getBrokersAsString());
5253

5354
// create a Kafka producer factory
5455
ProducerFactory<String, String> producerFactory =
55-
new DefaultKafkaProducerFactory<String, String>(senderProperties);
56+
new DefaultKafkaProducerFactory<String, String>(
57+
senderProperties);
5658

5759
// create a Kafka template
5860
template = new KafkaTemplate<>(producerFactory);
@@ -63,7 +65,7 @@ public void setUp() throws Exception {
6365
for (MessageListenerContainer messageListenerContainer : kafkaListenerEndpointRegistry
6466
.getListenerContainers()) {
6567
ContainerTestUtils.waitForAssignment(messageListenerContainer,
66-
embeddedKafka.getPartitionsPerTopic());
68+
embeddedKafka.getEmbeddedKafka().getPartitionsPerTopic());
6769
}
6870
}
6971

0 commit comments

Comments
 (0)