// Ensure you have some means of having a Jackson ObjectMapper
// available in your CDI ecosystem. One way to do this is to
// place the microBean Jackson CDI project on your classpath
// (https://github.com/microbean/microbean-jackson-cdi).
import java.io.IOException;
import java.io.InputStream;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.microbean.cloudevents.jackson.cdi.CloudEventBroadcaster;
@ApplicationScoped // or whatever you like
final class MyCloudEventPump {
@Inject
private CloudEventBroadcaster broadcaster;
MyCloudEventPump() {
super();
}
void broadcast() throws IOException {
// See https://github.com/cloudevents/spec/blob/master/json-format.md
final InputStream stream = acquireAnInputStreamOfJsonFormattedCloudEvents();
this.broadcaster.fire(stream);
stream.close();
}
}
// Then, elsewhere...
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import org.microbean.cloudevents.CloudEvent;
@ApplicationScoped
public class MyCloudEventObserver {
public MyCloudEventObserver() {
super();
}
private final void onCloudEvent(@Observes final CloudEvent event) {
// do something useful
}
}