if (Modifier.isAbstract(annClass.getAccess())) {
return null;
}
Component anno = annClass.getAnnotation(Component.class);
if (anno == null) {
return null;
}
ComponentDescriptor<?> component = new ComponentDescriptor<Object>();
component.setRole(anno.role().getName());
component.setRoleHint(filterEmptyAsNull(anno.hint()));
component.setImplementation(className);
component.setVersion(filterEmptyAsNull(anno.version()));
component.setComponentType(filterEmptyAsNull(anno.type()));
component.setInstantiationStrategy(filterEmptyAsNull(anno.instantiationStrategy()));
component.setLifecycleHandler(filterEmptyAsNull(anno.lifecycleHandler()));
component.setComponentProfile(filterEmptyAsNull(anno.profile()));
component.setComponentComposer(filterEmptyAsNull(anno.composer()));
component.setComponentConfigurator(filterEmptyAsNull(anno.configurator()));
component.setComponentFactory(filterEmptyAsNull(anno.factory()));
component.setDescription(filterEmptyAsNull(anno.description()));
component.setAlias(filterEmptyAsNull(anno.alias()));
component.setIsolatedRealm(anno.isolatedRealm());
for (AnnClass c : getClasses(annClass, cl)) {
for (AnnField field : c.getFields().values()) {
ComponentRequirement requirement = findRequirement(field, c, cl);