in component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ServiceReferenceOSGi.java [33:53]
public ServiceReferenceOSGi(Class<T> clazz, String filterString) {
super((executionContext, op) -> {
ServiceTracker<T, Tracked<T>>
serviceTracker = new ServiceTracker<>(
executionContext.getBundleContext(),
buildFilter(executionContext, filterString, clazz),
new DefaultServiceTrackerCustomizer<>(op));
serviceTracker.open();
return new OSGiResultImpl(
serviceTracker::close,
() -> serviceTracker.getTracked().values().stream().map(
tracked -> tracked.runnable.update()
).reduce(
Boolean.FALSE, Boolean::logicalOr
)
);
});
}