Skip to content
This repository has been archived by the owner on Nov 13, 2019. It is now read-only.

Latest commit

 

History

History
75 lines (49 loc) · 2.11 KB

README.adoc

File metadata and controls

75 lines (49 loc) · 2.11 KB

Implementation of the CloudEvents Specification

Build Status (Travis CI) License

Simple CDI libray for the CloudEvents Specification

A more detailed introduction is here

Below is a simple overview!

JAX-RS and Apache Kafka support

Adding the jax-rs or kafka module to your application integrates, either the /ce JAX-RS endpoint, or a configurable Kafka consumer for handling CloudEvents from within your application!

Receiving different multi-cloud events, using the CDI API:

public class Monitor {

    public void receiveCloudEventFromAWS(@Observes @EventType(name = "aws.s3.object.created") CloudEvent<?> cloudEvent) {

        System.out.println("S3 event: " + cloudEvent);

    }
    public void receiveCloudEventFromAzure(@Observes @EventType(name = "Microsoft.Storage.BlobCreated") CloudEvent<?> cloudEvent) {

        System.out.println("Azure event: " + cloudEvent);

    }
}

Java SE / Weld-SE support

Vanilla CDI support and APIs for CloudEvents

Creating and firing an event:

public class EventPublisher {

    @Inject
    private Event<CloudEvent<MyCustomEvent>> cloudEvent;

    public void doAndTrigger() throws Exception {

        // do some domain specific stuff...

        CloudEvent<MyCustomEvent> event = new CloudEventBuilder<MyCustomEvent>()
                .eventType("Cloud.Storage.Item.Created")
                .source(new URI("/trigger"))
                .eventID(UUID.randomUUID().toString())
                .build();

        cloudEvent.select(
                    new EventTypeQualifier("Cloud.Storage.Item.Created"))
                .fire(event);

    }
}

Receiving the event

...
    public void receiveCloudEvent(@Observes @EventType(name = "Cloud.Storage.Item.Created") CloudEvent cloudEvent) {

        receiver.ack();
    }