<dependency>
<groupId>org.osgi.enroute.easse.simple.adapter</groupId>
<artifactId>enroute.easse.simple.adapter.api</artifactId>
<version>1.0.0</version>
</dependency>
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
public class MyEventHandler implements EventHandler {
@Override
public void handleEvent(Event event) {
System.out.println("Received event: " + event.getProperty("message"));
}
}
import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
import org.osgi.service.event.EventConstants;
public class MyEventPublisher {
private EventAdmin eventAdmin;
public void setEventAdmin(EventAdmin eventAdmin) {
this.eventAdmin = eventAdmin;
}
public void publishEvent(String message) {
Event event = new Event("my/topic", Collections.singletonMap("message", message));
eventAdmin.sendEvent(event);
}
}
import org.osgi.enroute.easse.simple.adapter.api.EasseAdapter;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class MyBundleActivator implements BundleActivator {
@Override
public void start(BundleContext bundleContext) {
EasseAdapter adapter = new EasseAdapter(bundleContext);
MyEventHandler eventHandler = new MyEventHandler();
MyEventPublisher eventPublisher = new MyEventPublisher();
adapter.publish(MyEventHandler.class, eventHandler);
adapter.publish(MyEventPublisher.class, eventPublisher);
}
@Override
public void stop(BundleContext bundleContext) {
}
}
<repositories>
<repository>
<id>enroute</id>
<url>https://repo.enroute.osgi.org/content/groups/public/</url>
</repository>
</repositories>
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<version>5.3.0</version>
<executions>
<execution>
<goals>
<goal>bnd-process</goal>
</goals>
</execution>
</executions>
</plugin>
<instructions>
<_dsannotations>*</_dsannotations>
<no.bundles.export>
!*.api
</no.bundles.export>
<_eassannotations>*</_eassannotations>
</instructions>