public ServiceReferenceOSGi()

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
                )
            );
        });
    }