Hi Davi,

You can absolutely use the EventAdmin for your ‘own’ events. There are many 
ways to accomplish this. My preference is to use the component annotations.

The class that generates the event needs a reference to the EventAdmin, like so:

        @Reference
        private EventAdmin eventAdmin;

        …
                eventAdmin.postEvent(new Event(YOUR_TOPIC, eventProperties));

And the class(es) that consume the event need to register the event topic they 
are interested in like so:

        @Component(
                property = {
                        EventConstants.EVENT_TOPIC + "=" + YOUR_TOPIC
                })
        public class YourClass implements EventHandler {
        …

        @Override
        public void handleEvent(Event event) {
                // Do your event thing here
        }

Cheers,

Erwin


> On May 17, 2020, at 20:53, Davi Baldin Tavares <[email protected]> wrote:
> 
> Hi all,
> 
> I would like to add an event driven communication to my app. For example if 
> some sort of data (pattern) is going to be saved into database by the DAO 
> service, an event should be raised and broadcasted to other 
> bundle/services/listeners. Instead of writing my own “AMQP” framework,  can I 
> reuse current Karaf EventAdmin implementation? Event propagation is only 
> required inside the same instance and the outside Comunication is not 
> necessary right now. It is ok to extend the EventAdmin usage beyond bundle 
> lifecycle and framework stuff?
> 
> Thanks,
> 
> Davi

Reply via email to