private ServiceGetter()

in src/main/java/org/apache/sling/junit/impl/ServiceGetter.java [40:63]


    private ServiceGetter(BundleContext bundleContext, Class<T> serviceClass, String ldapFilter) {
        if (serviceClass.equals(BundleContext.class)) {
            // Special case to provide the BundleContext to tests
            this.bundleContext = bundleContext;
            this.tracker = null;
        } else {
            this.bundleContext = null;
            final String classFilter = String.format("(%s=%s)", Constants.OBJECTCLASS, serviceClass.getName());
            final String combinedFilter;
            if (ldapFilter == null || ldapFilter.trim().length() == 0) {
                combinedFilter = classFilter;
            } else {
                combinedFilter = String.format("(&%s%s)", classFilter, ldapFilter);
            }
            final Filter filter;
            try {
                filter = FrameworkUtil.createFilter(combinedFilter);
                tracker = new ServiceTracker(bundleContext, filter, null);
                tracker.open();
            } catch (InvalidSyntaxException e) {
                throw new IllegalArgumentException("Syntax of argument ldapFilter is invalid", e);
            }
        }
    }