From 12eee4da6ecc574d5d5933c95b783fb7fa879ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Qvarnstr=C3=B6m?= Date: Wed, 16 Dec 2020 11:36:28 +0100 Subject: [PATCH] Use scheduler instead of StartupEvent. Fixes #332 (#333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Qvarnström --- examples/restful-ws-quarkus/pom.xml | 8 +++- .../quarkus/client/UserEventsGenerator.java | 43 +++++++++---------- .../src/main/resources/application.properties | 1 + 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/examples/restful-ws-quarkus/pom.xml b/examples/restful-ws-quarkus/pom.xml index 3f6394cc..2ff6cc7c 100644 --- a/examples/restful-ws-quarkus/pom.xml +++ b/examples/restful-ws-quarkus/pom.xml @@ -10,10 +10,10 @@ 4.0.0 cloudevents-restful-ws-quarkus-example - 1.7.1.Final + 1.10.3.Final quarkus-universe-bom io.quarkus - 1.7.1.Final + 1.10.3.Final @@ -35,6 +35,10 @@ io.quarkus quarkus-rest-client + + io.quarkus + quarkus-scheduler + io.cloudevents cloudevents-api diff --git a/examples/restful-ws-quarkus/src/main/java/io/cloudevents/examples/quarkus/client/UserEventsGenerator.java b/examples/restful-ws-quarkus/src/main/java/io/cloudevents/examples/quarkus/client/UserEventsGenerator.java index 61a49786..0c3285ce 100644 --- a/examples/restful-ws-quarkus/src/main/java/io/cloudevents/examples/quarkus/client/UserEventsGenerator.java +++ b/examples/restful-ws-quarkus/src/main/java/io/cloudevents/examples/quarkus/client/UserEventsGenerator.java @@ -1,24 +1,25 @@ package io.cloudevents.examples.quarkus.client; +import java.net.URI; +import java.util.UUID; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.ws.rs.core.MediaType; + import com.fasterxml.jackson.databind.ObjectMapper; + +import org.eclipse.microprofile.rest.client.inject.RestClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import io.cloudevents.CloudEvent; import io.cloudevents.CloudEventData; import io.cloudevents.core.builder.CloudEventBuilder; import io.cloudevents.core.data.PojoCloudEventData; import io.cloudevents.examples.quarkus.model.User; -import io.quarkus.runtime.StartupEvent; -import io.smallrye.mutiny.Multi; -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; -import javax.ws.rs.core.MediaType; -import java.net.URI; -import java.time.Duration; -import java.util.UUID; +import io.quarkus.scheduler.Scheduled; +import io.smallrye.mutiny.Uni; @ApplicationScoped public class UserEventsGenerator { @@ -31,16 +32,14 @@ public class UserEventsGenerator { @Inject @RestClient UserClient userClient; + + long userCount=0; - public void init(@Observes StartupEvent startupEvent) { - Multi.createFrom().ticks().every(Duration.ofSeconds(2)) - .onItem() - .transform(this::createEvent) - .subscribe() - .with(event -> { - LOGGER.info("try to emit user: {}", event.getId()); - userClient.emit(event); - }); + @Scheduled(every="2s") + public void init() { + CloudEvent event = createEvent(userCount++); + LOGGER.info("try to emit user: {}", event.getId()); + userClient.emit(event); } private CloudEvent createEvent(long id) { diff --git a/examples/restful-ws-quarkus/src/main/resources/application.properties b/examples/restful-ws-quarkus/src/main/resources/application.properties index 44e4b824..e41cca74 100644 --- a/examples/restful-ws-quarkus/src/main/resources/application.properties +++ b/examples/restful-ws-quarkus/src/main/resources/application.properties @@ -3,4 +3,5 @@ ## The Rest client will send events to the local UserResource io.cloudevents.examples.quarkus.client.UserClient/mp-rest/url=http://localhost:8080 +%test.io.cloudevents.examples.quarkus.client.UserClient/mp-rest/url=http://localhost:8081 io.cloudevents.examples.quarkus.client.UserClient/mp-rest/scope=javax.inject.Singleton