in cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/RuntimeExtension.java [291:325]
private void addBeans(ComponentTemplateDTO componentTemplate, AfterBeanDiscovery abd, BeanManager bm) {
ComponentDTO componentDTO = _containerState.containerDTO().components.get(0);
componentTemplate.references.stream().map(ExtendedReferenceTemplateDTO.class::cast).forEach(
t -> {
ReferenceBean bean = t.bean;
bean.setBeanManager(bm);
if (componentTemplate.type == ComponentType.CONTAINER) {
componentDTO.instances.get(0).references.stream().filter(
r -> r.template == t
).findFirst().map(
ExtendedReferenceDTO.class::cast
).ifPresent(
bean::setReferenceDTO
);
}
_log.debug(l -> l.debug("CCR Adding synthetic bean {} on {}", bean, _containerState.bundle()));
abd.addBean(bean);
}
);
componentTemplate.configurations.stream().map(ExtendedConfigurationTemplateDTO.class::cast).filter(
t -> Objects.nonNull(t.injectionPointType)
).forEach(
t -> {
ComponentPropertiesBean bean = t.bean;
_log.debug(l -> l.debug("CCR Adding synthetic bean {} on {}", bean, _containerState.bundle()));
abd.addBean(bean);
}
);
}