in geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java [128:145]
private HealthCheck lookup(final Bean<?> bean, final BeanManager manager) {
// if this is not an instance of HealthCheck, then it's a producer (not sure it's enough)
final Class<?> type = bean.getBeanClass() == null ?
HealthCheck.class :
(bean.getTypes().contains(bean.getBeanClass()) ? bean.getBeanClass() : HealthCheck.class);
final Bean<?> resolvedBean;
if (type != HealthCheck.class) {
final Set<Bean<?>> beans = manager.getBeans(type, bean.getQualifiers().toArray(new Annotation[0]));
resolvedBean = manager.resolve(beans);
} else {
resolvedBean = bean;
}
final CreationalContext<Object> creationalContext = manager.createCreationalContext(null);
if (!manager.isNormalScope(resolvedBean.getScope())) {
contexts.add(creationalContext);
}
return HealthCheck.class.cast(manager.getReference(resolvedBean, HealthCheck.class, creationalContext));
}