private void applyComponent(final ComponentBean component,
final Class<?> type) {
if (Util.hasComponentAnno(type)) {
final Component anno = type.getAnnotation(Component.class);
//
final String name = anno.name();
final String nameDefault = type.getName();
component.name = Util.isValidText(name) ? name : nameDefault;
component.enabled = anno.enabled();
final String factory = anno.factory();
component.factory = Util.isValidText(factory) ? factory : null;
component.immediate = anno.immediate();
component.policy = anno.configurationPolicy();
//
component.implementation.klaz = type.getName();
component.service.servicefactory = anno.servicefactory();
//
applyPropertyKeyValue(component, anno, type);