in core/src/main/java/com/alibaba/smart/framework/engine/extension/scanner/SimpleAnnotationScanner.java [194:219]
private void put(ProcessEngineConfiguration processEngineConfiguration, Class<?> currentClazz,
Map<Class, Object> bindingMap, Class bindKeyClass) {
boolean pecFound = false;
Class tempClazz = currentClazz;
while (tempClazz != null && !tempClazz.equals(Object.class)){
Class<?>[] interfaces = tempClazz.getInterfaces();
for (Class<?> anInterface : interfaces) {
if (anInterface.equals(ProcessEngineConfigurationAware.class)) {
pecFound = true;
break;
}
}
tempClazz = tempClazz.getSuperclass();
}
Object newInstance = ClassUtil.createNewInstance(currentClazz);
if (pecFound) {
((ProcessEngineConfigurationAware)newInstance).setProcessEngineConfiguration(
processEngineConfiguration);
}
bindingMap.put(bindKeyClass, newInstance);
}