public void applyHeuristics(InjectingComponentType componentType, Class<?> implClass, IntrospectionContext context) {
serviceHeuristic.applyHeuristics(componentType, implClass, context);
if (componentType.getConstructor() == null) {
Constructor<?> ctor = findConstructor(implClass, componentType, context);
componentType.setConstructor(ctor);
}
if (componentType.getProperties().isEmpty() && componentType.getReferences().isEmpty() && componentType.getResourceReferences().isEmpty()) {
evaluateConstructor(componentType, implClass, context);
evaluateSetters(componentType, implClass, context);
evaluateFields(componentType, implClass, context);
}
Scope scope = componentType.getScope();
if (componentType.isManaged() && !scope.isSingleton()) {
IllegalManagementAttribute warning = new IllegalManagementAttribute(implClass, componentType);
context.addWarning(warning);
}
}