public interface MyEvent {
String getMessage();
}
public class MyEventImpl implements MyEvent {
private String message;
public MyEventImpl(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
}
@Component(service = EventListener.class)
public class MyEventListener implements EventListener {
@Override
public void handleEvent(Event event) {
if (event instanceof MyEvent) {
MyEvent myEvent = (MyEvent) event;
System.out.println("Received event: " + myEvent.getMessage());
}
}
}
@Reference
private EventAdmin eventAdmin;
public void publishEvent(String message) {
MyEvent myEvent = new MyEventImpl(message);
eventAdmin.postEvent(myEvent);
}
Bundle-Name: MyEventBundle
Bundle-SymbolicName: com.example.myeventbundle
Bundle-Version: 1.0.0
Import-Package: org.osgi.framework, org.osgi.service.event, org.osgi.service.component.annotations
Export-Package: com.example.myeventbundle