CloudEvents Json Jackson

Javadocs

This module provides the JSON EventFormat implementation using Jackson and a PojoCloudEventDataMapper to convert CloudEventData to POJOs using the Jackson ObjectMapper.

For Maven based projects, use the following dependency:

<dependency>
    <groupId>io.cloudevents</groupId>
    <artifactId>cloudevents-json-jackson</artifactId>
    <version>4.0.1</version>
</dependency>

Using the JSON Event Format

You don’t need to perform any operation to configure the module, more than adding the dependency to your project:

import io.cloudevents.CloudEvent;
import io.cloudevents.core.format.ContentType;
import io.cloudevents.core.provider.EventFormatProvider;
import io.cloudevents.core.builder.CloudEventBuilder;

CloudEvent event = CloudEventBuilder.v1()
    .withId("hello")
    .withType("example.vertx")
    .withSource(URI.create("http://localhost"))
    .build();

byte[]serialized = EventFormatProvider
    .getInstance()
    .resolveFormat(ContentType.JSON)
    .serialize(event);

The EventFormatProvider will resolve automatically the JsonFormat using the ServiceLoader APIs.

Mapping CloudEventData to POJOs using Jackson ObjectMapper

Using the Jackson ObjectMapper, you can easily extract a POJO starting from any CloudEventData:

import io.cloudevents.core.data.PojoCloudEventData;
import io.cloudevents.jackson.PojoCloudEventDataMapper;

import static io.cloudevents.core.CloudEventUtils.mapData;

PojoCloudEventData<User> cloudEventData = mapData(
    inputEvent,
    PojoCloudEventDataMapper.from(objectMapper,User.class)
);
// check if cloudEventData is null
User user = cloudEventData.getValue();