Skip to content

Commit 14f9159

Browse files
Improved the quarkus example
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
1 parent 615ccd6 commit 14f9159

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

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

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
package io.cloudevents.examples.quarkus.client;
22

3-
import java.net.URI;
4-
import java.time.Duration;
5-
import java.util.UUID;
6-
import javax.enterprise.context.ApplicationScoped;
7-
import javax.enterprise.event.Observes;
8-
import javax.inject.Inject;
9-
import javax.ws.rs.core.MediaType;
10-
3+
import com.fasterxml.jackson.databind.ObjectMapper;
114
import io.cloudevents.CloudEvent;
5+
import io.cloudevents.CloudEventData;
126
import io.cloudevents.core.builder.CloudEventBuilder;
7+
import io.cloudevents.core.data.PojoCloudEventData;
138
import io.cloudevents.examples.quarkus.model.User;
149
import io.quarkus.runtime.StartupEvent;
1510
import io.smallrye.mutiny.Multi;
16-
import io.vertx.core.json.Json;
1711
import org.eclipse.microprofile.rest.client.inject.RestClient;
1812
import org.slf4j.Logger;
1913
import org.slf4j.LoggerFactory;
2014

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;
22+
2123
@ApplicationScoped
2224
public class UserEventsGenerator {
2325

2426
private static final Logger LOGGER = LoggerFactory.getLogger(UserEventsGenerator.class);
2527

28+
@Inject
29+
ObjectMapper mapper;
30+
2631
@Inject
2732
@RestClient
2833
UserClient userClient;
@@ -44,16 +49,16 @@ private CloudEvent createEvent(long id) {
4449
.withType("io.cloudevents.examples.quarkus.user")
4550
.withId(UUID.randomUUID().toString())
4651
.withDataContentType(MediaType.APPLICATION_JSON)
47-
.withData(createUserAsByteArray(id))
52+
.withData(createUser(id))
4853
.build();
4954
}
5055

51-
private byte[] createUserAsByteArray(Long id) {
56+
private CloudEventData createUser(Long id) {
5257
User user = new User()
5358
.setAge(id.intValue())
5459
.setUsername("user" + id)
5560
.setFirstName("firstName" + id)
5661
.setLastName("lastName" + id);
57-
return Json.encode(user).getBytes();
62+
return PojoCloudEventData.wrap(user, mapper::writeValueAsBytes);
5863
}
5964
}

examples/restful-ws-quarkus/src/main/java/io/cloudevents/examples/quarkus/resources/UserResource.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package io.cloudevents.examples.quarkus.resources;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
34
import io.cloudevents.CloudEvent;
45
import io.cloudevents.examples.quarkus.model.User;
5-
import io.vertx.core.buffer.Buffer;
6-
import io.vertx.core.json.Json;
6+
import io.cloudevents.jackson.PojoCloudEventDataMapper;
77
import org.slf4j.Logger;
88
import org.slf4j.LoggerFactory;
99

10+
import javax.inject.Inject;
1011
import javax.ws.rs.*;
1112
import javax.ws.rs.core.Context;
1213
import javax.ws.rs.core.MediaType;
@@ -22,6 +23,9 @@ public class UserResource {
2223

2324
private static final Logger LOGGER = LoggerFactory.getLogger(UserResource.class);
2425

26+
@Inject
27+
ObjectMapper mapper;
28+
2529
@Context
2630
UriInfo uriInfo;
2731

@@ -46,7 +50,10 @@ public Response create(CloudEvent event) {
4650
if (event == null || event.getData() == null) {
4751
throw new BadRequestException("Invalid data received. Null or empty event");
4852
}
49-
User user = Json.decodeValue(Buffer.buffer(event.getData().toBytes()), User.class);
53+
User user = PojoCloudEventDataMapper
54+
.from(mapper, User.class)
55+
.map(event.getData())
56+
.getValue();
5057
if (users.containsKey(user.getUsername())) {
5158
throw new BadRequestException("Username already exists: " + user.getUsername());
5259
}

0 commit comments

Comments
 (0)