Skip to content

Commit 3eafd17

Browse files
committed
Fix KafkaApplicationClient startup in example application.
Signed-off-by: Carsten Lohmann <carsten.lohmann@bosch.io>
1 parent c4ffb57 commit 3eafd17

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

examples/hono-client-examples/src/main/java/org/eclipse/hono/vertx/example/base/HonoExampleApplicationBase.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.eclipse.hono.application.client.TimeUntilDisconnectNotification;
3131
import org.eclipse.hono.application.client.amqp.AmqpApplicationClient;
3232
import org.eclipse.hono.application.client.amqp.ProtonBasedApplicationClient;
33+
import org.eclipse.hono.application.client.kafka.KafkaApplicationClient;
3334
import org.eclipse.hono.application.client.kafka.impl.KafkaApplicationClientImpl;
3435
import org.eclipse.hono.client.ServiceInvocationException;
3536
import org.eclipse.hono.client.amqp.config.ClientConfigProperties;
@@ -46,6 +47,7 @@
4647
import io.vertx.core.CompositeFuture;
4748
import io.vertx.core.Future;
4849
import io.vertx.core.Handler;
50+
import io.vertx.core.Promise;
4951
import io.vertx.core.Vertx;
5052
import io.vertx.core.buffer.Buffer;
5153
import io.vertx.core.json.JsonObject;
@@ -173,10 +175,17 @@ protected void consumeData() {
173175
ac.addReconnectListener(c -> LOG.info("reconnected to Hono"));
174176
}
175177

178+
final Promise<Void> readyTracker = Promise.promise();
179+
if (client instanceof KafkaApplicationClient kafkaApplicationClient) {
180+
kafkaApplicationClient.addOnClientReadyHandler(readyTracker);
181+
} else {
182+
readyTracker.complete();
183+
}
176184
client.start()
177-
.compose(v -> CompositeFuture.all(createEventConsumer(), createTelemetryConsumer()))
178-
.onSuccess(ok -> startup.complete(client))
179-
.onFailure(startup::completeExceptionally);
185+
.compose(ok -> readyTracker.future())
186+
.compose(v -> CompositeFuture.all(createEventConsumer(), createTelemetryConsumer()))
187+
.onSuccess(ok -> startup.complete(client))
188+
.onFailure(startup::completeExceptionally);
180189

181190
try {
182191
startup.join();

0 commit comments

Comments
 (0)