Removing slf4j-log4j12, deleting log4j.properties and adding a standard src/test/resources/logback.xml, since the Kafka libraries use the logback SLF4J binding.

This commit is contained in:
Amol Gote 2023-11-04 18:33:09 -04:00
parent 2a6e561f76
commit 80cd71fff3
6 changed files with 29 additions and 12 deletions

View File

@ -1 +0,0 @@
log4j.rootLogger=INFO, stdout

View File

@ -23,11 +23,6 @@
<artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId>
<version>${org.slf4j.version}</version> <version>${org.slf4j.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>

View File

@ -1,5 +1,6 @@
package com.baeldung.kafka.message.ordering; package com.baeldung.kafka.message.ordering;
import com.baeldung.kafka.headers.KafkaMessageHeaders;
import com.baeldung.kafka.message.ordering.payload.UserEvent; import com.baeldung.kafka.message.ordering.payload.UserEvent;
import com.baeldung.kafka.message.ordering.serialization.JacksonDeserializer; import com.baeldung.kafka.message.ordering.serialization.JacksonDeserializer;
import com.baeldung.kafka.message.ordering.serialization.JacksonSerializer; import com.baeldung.kafka.message.ordering.serialization.JacksonSerializer;
@ -16,6 +17,8 @@ import org.apache.kafka.common.serialization.LongSerializer;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.KafkaContainer; import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.junit.jupiter.Testcontainers;
@ -36,6 +39,8 @@ public class ExternalSequenceWithTimeWindowIntegrationTest {
private static final Duration TIMEOUT_WAIT_FOR_MESSAGES = Duration.ofSeconds(5); private static final Duration TIMEOUT_WAIT_FOR_MESSAGES = Duration.ofSeconds(5);
private static final long BUFFER_PERIOD_NS = Duration.ofSeconds(5).toNanos(); private static final long BUFFER_PERIOD_NS = Duration.ofSeconds(5).toNanos();
private static Logger logger = LoggerFactory.getLogger(ExternalSequenceWithTimeWindowIntegrationTest.class);
@Container @Container
private static final KafkaContainer KAFKA_CONTAINER = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:latest")); private static final KafkaContainer KAFKA_CONTAINER = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:latest"));
@ -80,7 +85,7 @@ public class ExternalSequenceWithTimeWindowIntegrationTest {
Future<RecordMetadata> future = producer.send(new ProducerRecord<>(Config.MULTI_PARTITION_TOPIC, sequenceNumber, userEvent)); Future<RecordMetadata> future = producer.send(new ProducerRecord<>(Config.MULTI_PARTITION_TOPIC, sequenceNumber, userEvent));
sentUserEventList.add(userEvent); sentUserEventList.add(userEvent);
RecordMetadata metadata = future.get(); RecordMetadata metadata = future.get();
System.out.println("User Event ID: " + userEvent.getUserEventId() + ", Partition : " + metadata.partition()); logger.info("User Event ID: " + userEvent.getUserEventId() + ", Partition : " + metadata.partition());
} }
consumer.subscribe(Collections.singletonList(Config.MULTI_PARTITION_TOPIC)); consumer.subscribe(Collections.singletonList(Config.MULTI_PARTITION_TOPIC));
@ -109,7 +114,7 @@ public class ExternalSequenceWithTimeWindowIntegrationTest {
Collections.sort(buffer); Collections.sort(buffer);
buffer.forEach(userEvent -> { buffer.forEach(userEvent -> {
receivedUserEventList.add(userEvent); receivedUserEventList.add(userEvent);
System.out.println("Processing message with Global Sequence number: " + userEvent.getGlobalSequenceNumber() + ", User Event Id: " + userEvent.getUserEventId()); logger.info("Processing message with Global Sequence number: " + userEvent.getGlobalSequenceNumber() + ", User Event Id: " + userEvent.getUserEventId());
}); });
buffer.clear(); buffer.clear();
} }

View File

@ -16,6 +16,8 @@ import org.apache.kafka.common.serialization.LongSerializer;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.KafkaContainer; import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.junit.jupiter.Testcontainers;
@ -34,6 +36,8 @@ public class MultiplePartitionIntegrationTest {
private static KafkaProducer<Long, UserEvent> producer; private static KafkaProducer<Long, UserEvent> producer;
private static KafkaConsumer<Long, UserEvent> consumer; private static KafkaConsumer<Long, UserEvent> consumer;
private static final Duration TIMEOUT_WAIT_FOR_MESSAGES = Duration.ofSeconds(5); private static final Duration TIMEOUT_WAIT_FOR_MESSAGES = Duration.ofSeconds(5);
private static Logger logger = LoggerFactory.getLogger(MultiplePartitionIntegrationTest.class);
@Container @Container
private static final KafkaContainer KAFKA_CONTAINER = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:latest")); private static final KafkaContainer KAFKA_CONTAINER = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:latest"));
@ -78,7 +82,7 @@ public class MultiplePartitionIntegrationTest {
Future<RecordMetadata> future = producer.send(new ProducerRecord<>(Config.MULTI_PARTITION_TOPIC, sequenceNumber, userEvent)); Future<RecordMetadata> future = producer.send(new ProducerRecord<>(Config.MULTI_PARTITION_TOPIC, sequenceNumber, userEvent));
sentUserEventList.add(userEvent); sentUserEventList.add(userEvent);
RecordMetadata metadata = future.get(); RecordMetadata metadata = future.get();
System.out.println("User Event ID: " + userEvent.getUserEventId() + ", Partition : " + metadata.partition()); logger.info("User Event ID: " + userEvent.getUserEventId() + ", Partition : " + metadata.partition());
} }
consumer.subscribe(Collections.singletonList(Config.MULTI_PARTITION_TOPIC)); consumer.subscribe(Collections.singletonList(Config.MULTI_PARTITION_TOPIC));
@ -86,7 +90,7 @@ public class MultiplePartitionIntegrationTest {
records.forEach(record -> { records.forEach(record -> {
UserEvent userEvent = record.value(); UserEvent userEvent = record.value();
receivedUserEventList.add(userEvent); receivedUserEventList.add(userEvent);
System.out.println("User Event ID: " + userEvent.getUserEventId()); logger.info("User Event ID: " + userEvent.getUserEventId());
}); });
assertThat(receivedUserEventList) assertThat(receivedUserEventList)
.isNotEqualTo(sentUserEventList) .isNotEqualTo(sentUserEventList)

View File

@ -18,6 +18,8 @@ import org.apache.kafka.common.serialization.LongSerializer;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.KafkaContainer; import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.junit.jupiter.Testcontainers;
@ -39,6 +41,7 @@ public class SinglePartitionIntegrationTest {
private static final Duration TIMEOUT_WAIT_FOR_MESSAGES = Duration.ofSeconds(5); private static final Duration TIMEOUT_WAIT_FOR_MESSAGES = Duration.ofSeconds(5);
private static Logger logger = LoggerFactory.getLogger(SinglePartitionIntegrationTest.class);
@Container @Container
private static final KafkaContainer KAFKA_CONTAINER = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:latest")); private static final KafkaContainer KAFKA_CONTAINER = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:latest"));
@ -86,7 +89,7 @@ public class SinglePartitionIntegrationTest {
Future<RecordMetadata> future = producer.send(producerRecord); Future<RecordMetadata> future = producer.send(producerRecord);
sentUserEventList.add(userEvent); sentUserEventList.add(userEvent);
RecordMetadata metadata = future.get(); RecordMetadata metadata = future.get();
System.out.println("User Event ID: " + userEvent.getUserEventId() + ", Partition : " + metadata.partition()); logger.info("User Event ID: " + userEvent.getUserEventId() + ", Partition : " + metadata.partition());
} }
consumer.subscribe(Collections.singletonList(Config.SINGLE_PARTITION_TOPIC)); consumer.subscribe(Collections.singletonList(Config.SINGLE_PARTITION_TOPIC));
@ -94,7 +97,7 @@ public class SinglePartitionIntegrationTest {
records.forEach(record -> { records.forEach(record -> {
UserEvent userEvent = record.value(); UserEvent userEvent = record.value();
receivedUserEventList.add(userEvent); receivedUserEventList.add(userEvent);
System.out.println("User Event ID: " + userEvent.getUserEventId()); logger.info("User Event ID: " + userEvent.getUserEventId());
}); });
assertThat(receivedUserEventList) assertThat(receivedUserEventList)
.isEqualTo(sentUserEventList) .isEqualTo(sentUserEventList)

View File

@ -0,0 +1,11 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>