Skip to content

Commit 12eee4d

Browse files
authored
Use scheduler instead of StartupEvent. Fixes #332 (#333)
Signed-off-by: Thomas Qvarnström <[email protected]>
1 parent d49ff9f commit 12eee4d

File tree

3 files changed

+29
-25
lines changed

3 files changed

+29
-25
lines changed

examples/restful-ws-quarkus/pom.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>cloudevents-restful-ws-quarkus-example</artifactId>
1212
<properties>
13-
<quarkus-plugin.version>1.7.1.Final</quarkus-plugin.version>
13+
<quarkus-plugin.version>1.10.3.Final</quarkus-plugin.version>
1414
<quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id>
1515
<quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
16-
<quarkus.platform.version>1.7.1.Final</quarkus.platform.version>
16+
<quarkus.platform.version>1.10.3.Final</quarkus.platform.version>
1717
</properties>
1818
<dependencyManagement>
1919
<dependencies>
@@ -35,6 +35,10 @@
3535
<groupId>io.quarkus</groupId>
3636
<artifactId>quarkus-rest-client</artifactId>
3737
</dependency>
38+
<dependency>
39+
<groupId>io.quarkus</groupId>
40+
<artifactId>quarkus-scheduler</artifactId>
41+
</dependency>
3842
<dependency>
3943
<groupId>io.cloudevents</groupId>
4044
<artifactId>cloudevents-api</artifactId>

examples/restful-ws-quarkus/src/main/java/io/cloudevents/examples/quarkus/client/UserEventsGenerator.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
package io.cloudevents.examples.quarkus.client;
22

3+
import java.net.URI;
4+
import java.util.UUID;
5+
6+
import javax.enterprise.context.ApplicationScoped;
7+
import javax.inject.Inject;
8+
import javax.ws.rs.core.MediaType;
9+
310
import com.fasterxml.jackson.databind.ObjectMapper;
11+
12+
import org.eclipse.microprofile.rest.client.inject.RestClient;
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
15+
416
import io.cloudevents.CloudEvent;
517
import io.cloudevents.CloudEventData;
618
import io.cloudevents.core.builder.CloudEventBuilder;
719
import io.cloudevents.core.data.PojoCloudEventData;
820
import io.cloudevents.examples.quarkus.model.User;
9-
import io.quarkus.runtime.StartupEvent;
10-
import io.smallrye.mutiny.Multi;
11-
import org.eclipse.microprofile.rest.client.inject.RestClient;
12-
import org.slf4j.Logger;
13-
import org.slf4j.LoggerFactory;
14-
15-
import javax.enterprise.context.ApplicationScoped;
16-
import javax.enterprise.event.Observes;
17-
import javax.inject.Inject;
18-
import javax.ws.rs.core.MediaType;
19-
import java.net.URI;
20-
import java.time.Duration;
21-
import java.util.UUID;
21+
import io.quarkus.scheduler.Scheduled;
22+
import io.smallrye.mutiny.Uni;
2223

2324
@ApplicationScoped
2425
public class UserEventsGenerator {
@@ -31,16 +32,14 @@ public class UserEventsGenerator {
3132
@Inject
3233
@RestClient
3334
UserClient userClient;
34-
35-
public void init(@Observes StartupEvent startupEvent) {
36-
Multi.createFrom().ticks().every(Duration.ofSeconds(2))
37-
.onItem()
38-
.transform(this::createEvent)
39-
.subscribe()
40-
.with(event -> {
41-
LOGGER.info("try to emit user: {}", event.getId());
42-
userClient.emit(event);
43-
});
35+
36+
long userCount=0;
37+
38+
@Scheduled(every="2s")
39+
public void init() {
40+
CloudEvent event = createEvent(userCount++);
41+
LOGGER.info("try to emit user: {}", event.getId());
42+
userClient.emit(event);
4443
}
4544

4645
private CloudEvent createEvent(long id) {

examples/restful-ws-quarkus/src/main/resources/application.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33

44
## The Rest client will send events to the local UserResource
55
io.cloudevents.examples.quarkus.client.UserClient/mp-rest/url=http://localhost:8080
6+
%test.io.cloudevents.examples.quarkus.client.UserClient/mp-rest/url=http://localhost:8081
67
io.cloudevents.examples.quarkus.client.UserClient/mp-rest/scope=javax.inject.Singleton

0 commit comments

Comments
 (0)