Bundle-Name: MyPlugin
Bundle-SymbolicName: com.example.myplugin
Bundle-Version: 1.0.0
...
Export-Package: org.osgi.service.wireadmin
BundleContext context = FrameworkUtil.getBundle(MyPlugin.class).getBundleContext();
Bundle myPluginBundle = context.installBundle("file:/path/to/myplugin.jar");
myPluginBundle.start();
import org.osgi.service.wireadmin.*;
public class WireAdminExample implements WireAdminListener {
private WireAdmin wireAdmin;
public void setWireAdmin(WireAdmin wireAdmin) {
this.wireAdmin = wireAdmin;
}
public void start() {
wireAdmin.addListener(this);
}
public void wireAdminEvent(WireAdminEvent event) {
switch (event.getType()) {
case WireAdminEvent.WIRE_CREATED:
System.out.println("Wire created.");
break;
case WireAdminEvent.WIRE_CONNECTED:
System.out.println("Wire connected.");
break;
case WireAdminEvent.WIRE_UPDATED:
System.out.println("Wire updated.");
break;
case WireAdminEvent.WIRE_DISCONNECTED:
System.out.println("Wire disconnected.");
break;
case WireAdminEvent.WIRE_DELETED:
System.out.println("Wire deleted.");
break;
default:
System.out.println("Unknown event type.");
}
}
public void createWire(ServiceReference sourceServiceRef, ServiceReference targetServiceRef) {
Dictionary<String, Object> wireProps = new Hashtable<>();
wireAdmin.createWire(sourceServiceRef, targetServiceRef, wireProps);
}
public void updateWire(Wire wire, Dictionary<String, Object> props) {
wire.updateProperties(props);
}
public void deleteWire(Wire wire) {
wireAdmin.deleteWire(wire);
}
}