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