Skip to content

Commit f2d10b2

Browse files
committed
Reproducer for issue 50751
1 parent ffebdaa commit f2d10b2

File tree

4 files changed

+196
-0
lines changed

4 files changed

+196
-0
lines changed
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>quarkus-integration-tests-parent</artifactId>
7+
<groupId>io.quarkus</groupId>
8+
<version>999-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>quarkus-integration-test-kafka-transmitter</artifactId>
13+
<name>Quarkus - Integration Tests - Kafka Transmitter</name>
14+
<description>Reproducer for The Apache Kafka transmitter double quotes issue</description>
15+
16+
<properties>
17+
<maven.compiler.parameters>true</maven.compiler.parameters>
18+
</properties>
19+
20+
<dependencies>
21+
<dependency>
22+
<groupId>io.quarkus</groupId>
23+
<artifactId>quarkus-integration-test-class-transformer</artifactId>
24+
</dependency>
25+
<dependency>
26+
<groupId>io.quarkus</groupId>
27+
<artifactId>quarkus-integration-test-shared-library</artifactId>
28+
</dependency>
29+
<dependency>
30+
<groupId>io.quarkus</groupId>
31+
<artifactId>quarkus-messaging-kafka</artifactId>
32+
</dependency>
33+
<dependency>
34+
<groupId>io.quarkus</groupId>
35+
<artifactId>quarkus-test-kafka-companion</artifactId>
36+
<scope>test</scope>
37+
</dependency>
38+
39+
40+
<!-- Minimal test dependencies to *-deployment artifacts for consistent build order -->
41+
<dependency>
42+
<groupId>io.quarkus</groupId>
43+
<artifactId>quarkus-integration-test-class-transformer-deployment</artifactId>
44+
<version>${project.version}</version>
45+
<type>pom</type>
46+
<scope>test</scope>
47+
<exclusions>
48+
<exclusion>
49+
<groupId>*</groupId>
50+
<artifactId>*</artifactId>
51+
</exclusion>
52+
</exclusions>
53+
</dependency>
54+
<dependency>
55+
<groupId>io.quarkus</groupId>
56+
<artifactId>quarkus-messaging-kafka-deployment</artifactId>
57+
<version>${project.version}</version>
58+
<type>pom</type>
59+
<scope>test</scope>
60+
<exclusions>
61+
<exclusion>
62+
<groupId>*</groupId>
63+
<artifactId>*</artifactId>
64+
</exclusion>
65+
</exclusions>
66+
</dependency>
67+
</dependencies>
68+
69+
<build>
70+
<plugins>
71+
<plugin>
72+
<groupId>io.quarkus</groupId>
73+
<artifactId>quarkus-maven-plugin</artifactId>
74+
<executions>
75+
<execution>
76+
<goals>
77+
<goal>build</goal>
78+
</goals>
79+
</execution>
80+
</executions>
81+
</plugin>
82+
83+
<plugin>
84+
<artifactId>maven-failsafe-plugin</artifactId>
85+
<configuration>
86+
<skip>true</skip>
87+
</configuration>
88+
</plugin>
89+
90+
<plugin>
91+
<artifactId>maven-surefire-plugin</artifactId>
92+
<configuration>
93+
<skip>true</skip>
94+
</configuration>
95+
</plugin>
96+
</plugins>
97+
</build>
98+
99+
<profiles>
100+
<profile>
101+
<id>test-kafka</id>
102+
<activation>
103+
<property>
104+
<name>test-containers</name>
105+
</property>
106+
</activation>
107+
<build>
108+
<plugins>
109+
<plugin>
110+
<artifactId>maven-surefire-plugin</artifactId>
111+
<configuration>
112+
<skip>false</skip>
113+
</configuration>
114+
</plugin>
115+
<plugin>
116+
<artifactId>maven-failsafe-plugin</artifactId>
117+
<configuration>
118+
<skip>false</skip>
119+
</configuration>
120+
</plugin>
121+
</plugins>
122+
</build>
123+
</profile>
124+
</profiles>
125+
126+
</project>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.quarkus.it.kafka;
2+
3+
import jakarta.enterprise.context.ApplicationScoped;
4+
import jakarta.inject.Inject;
5+
6+
import org.eclipse.microprofile.reactive.messaging.Channel;
7+
import org.eclipse.microprofile.reactive.messaging.Emitter;
8+
9+
@ApplicationScoped
10+
public class MessageTransmitter {
11+
12+
@Inject
13+
@Channel("foo.bar-topic")
14+
Emitter<String> emitter;
15+
16+
public void emit(String message) {
17+
emitter.send(message).toCompletableFuture().join();
18+
}
19+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package io.quarkus.it.kafka;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.time.Duration;
6+
import java.util.List;
7+
8+
import jakarta.inject.Inject;
9+
10+
import org.apache.kafka.clients.consumer.ConsumerRecord;
11+
import org.junit.jupiter.api.Order;
12+
import org.junit.jupiter.api.Tag;
13+
import org.junit.jupiter.api.Test;
14+
import org.junit.jupiter.api.condition.DisabledOnOs;
15+
import org.junit.jupiter.api.condition.OS;
16+
17+
import io.quarkus.test.common.WithTestResource;
18+
import io.quarkus.test.junit.QuarkusTest;
19+
import io.quarkus.test.kafka.InjectKafkaCompanion;
20+
import io.quarkus.test.kafka.KafkaCompanionResource;
21+
import io.smallrye.reactive.messaging.kafka.companion.KafkaCompanion;
22+
23+
@QuarkusTest
24+
@WithTestResource(KafkaCompanionResource.class)
25+
@DisabledOnOs({ OS.WINDOWS }) // Kafka requires docker to start
26+
@Tag("https://github.com/quarkusio/quarkus/issues/50751")
27+
@Order(1)
28+
class TransmitterTest {
29+
30+
@Inject
31+
MessageTransmitter messageTransmitter;
32+
33+
@InjectKafkaCompanion
34+
KafkaCompanion companion;
35+
36+
@Test
37+
void dashedTopic() {
38+
String message = "Hello, Quarkus!";
39+
messageTransmitter.emit(message);
40+
41+
List<String> actual = companion.consumeStrings()
42+
.fromTopics("foo.bar-topic")
43+
.awaitRecords(1, Duration.ofSeconds(30))
44+
.stream()
45+
.map(ConsumerRecord::value)
46+
.toList();
47+
assertEquals(1, actual.size());
48+
assertEquals(message, actual.get(0));
49+
}
50+
}

integration-tests/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@
190190
<module>kafka-json-schema-apicurio2</module>
191191
<module>kafka-streams</module>
192192
<module>kafka-devservices</module>
193+
<module>kafka-transmitter</module>
193194
<module>jpa</module>
194195
<module>jpa-mapping-xml</module>
195196
<module>jpa-db2</module>

0 commit comments

Comments
 (0)