in core/src/main/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtil.java [435:462]
public static boolean injectServices(Object target, BundleContext bundleContext, Map<String, Object> properties) {
// collect all declared reference annotations on class and field level
Class<?> targetClass = target.getClass();
OsgiMetadata metadata = OsgiMetadataUtil.getMetadata(targetClass);
if (metadata == null) {
throw new NoScrMetadataException(targetClass);
}
// try to inject services
boolean foundAny = false;
for (Reference reference : metadata.getReferences()) {
if (reference.isConstructorParameter()) {
continue;
}
if (properties != null) {
// Look for a target override
Object o = properties.get(reference.getName() + ".target");
if (o instanceof String) {
reference = new DynamicReference(reference,(String)o);
}
}
injectServiceReference(reference, target, bundleContext);
foundAny = true;
}
return foundAny;
}