in nmr/management/src/main/java/org/apache/servicemix/nmr/management/ManagementEndpointRegistry.java [57:95]
public void init() {
if (bundleContext == null) {
throw new IllegalArgumentException("bundleContext must be set");
}
managementStrategyTracker = new ServiceTracker(bundleContext, ManagementStrategy.class.getName(), null) {
@Override
public Object addingService(ServiceReference reference) {
ManagementStrategy newMs = (ManagementStrategy) super.addingService(reference);
if (getService() == null) {
bindManagementStrategy(newMs);
}
return newMs;
}
@Override
public void removedService(ServiceReference reference, Object service) {
ManagementStrategy newMs = (ManagementStrategy) getService();
bindManagementStrategy(newMs);
super.removedService(reference, service);
}
};
managementStrategyTracker.open();
endpointTracker = new ServiceTracker(bundleContext, InternalEndpoint.class.getName(), null) {
@Override
public Object addingService(ServiceReference reference) {
InternalEndpoint endpoint = (InternalEndpoint) super.addingService(reference);
register(endpoint);
return endpoint;
}
@Override
public void removedService(ServiceReference reference, Object service) {
InternalEndpoint endpoint = (InternalEndpoint) service;
unregister(endpoint);
super.removedService(reference, service);
}
};
endpointTracker.open();
}