Skip to content

Latest commit

 

History

History
79 lines (55 loc) · 1.87 KB

README.md

File metadata and controls

79 lines (55 loc) · 1.87 KB

CloudEvents Java API

Java API for CloudEvents(https://github.com/cloudevents/spec)

Features

How to use

  • Extend CloudEvent class:
public class LoginEvent extends CloudEvent<String> {

    public LoginEvent(String email, String ip) {
        setData(email);
        setContentType("text/plain");
        setExtension("ip", ip);
    }
}
  • Create object directly
CloudEvent<String> loginEvent = new CloudEvent<String>("text/plain", "jacky.chenlb@alibaba-inc.com");
  • Event Builder
CloudEvent<String> loginEvent = CloudEventBuilder.<String>newInstance().contentType("text/plain").data("jacky.chenlb@alibaba-inc.com").build();

ObjectMapper

  • 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>>() {});

Protocol Buffer

Please refer CloudEventMapper for converter between JavaBean and ProtoMessage.

Event Logging

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'}

Event Broker

Please consider NATS or NATS Streaming to post or subscribe cloud events.

References