CloudEvents Java API
Java API for CloudEvents(https://github.com/cloudevents/spec)
public class LoginEvent extends CloudEvent<String> {
public LoginEvent(String email, String ip) {
setData(email);
setContentType("text/plain");
setExtension("ip", ip);
}
}
CloudEvent<String> loginEvent = new CloudEvent<String>("text/plain", "jacky.chenlb@alibaba-inc.com");
CloudEvent<String> loginEvent = CloudEventBuilder.<String>newInstance().contentType("text/plain").data("jacky.chenlb@alibaba-inc.com").build();
ObjectMapper creation
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
write as String
objectMapper.writeValueAsString(loginEvent);
read from json text
objectMapper.readValue(jsonText, new TypeReference<CloudEvent<String>>() {});
Please refer CloudEventMapper for converter between JavaBean and ProtoMessage.
CloudEvent ships with default toString pattern: CloudEvent{cloudEventsVersion=’0.1’,eventID=’xxx’}
12:49:22,076 |-INFO in ch.qos.logback.classic.LoggerContext[default] - CloudEvent{cloudEventsVersion='0.1',eventID='xxx'}
Please consider NATS or NATS Streaming to post or subscribe cloud events.