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


上一篇:
下一篇:
切换中文