public interface MessageEvent { String getMessage(); void setMessage(String message); } public interface MessageEventListener { void onMessageEvent(MessageEvent event); } public class MessageEventImpl implements MessageEvent { private String message; @Override public String getMessage() { return message; } @Override public void setMessage(String message) { this.message = message; } } public class MessageEventListenerImpl implements MessageEventListener { @Override public void onMessageEvent(MessageEvent event) { System.out.println("Received message: " + event.getMessage()); } } <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="MessageEventImplComponent" activate="activate"> <implementation class="com.example.MessageEventImpl"/> <service> <provide interface="com.example.MessageEvent"/> </service> </scr:component> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="MessageEventListenerImplComponent" activate="activate"> <implementation class="com.example.MessageEventListenerImpl"/> <reference bind="bindMessageEvent" unbind="unbindMessageEvent" interface="com.example.MessageEvent"/> </scr:component> MessageEvent messageEvent = new MessageEventImpl(); messageEvent.setMessage("Hello, OSGi!"); ServiceTracker<MessageEventListener, MessageEventListener> tracker = new ServiceTracker<>(context, MessageEventListener.class, null); tracker.open(); MessageEventListener[] listeners = tracker.getServices(); if (listeners != null) { for (MessageEventListener listener : listeners) { listener.onMessageEvent(messageEvent); } } tracker.close();


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