code: private void processFields(final Object component, final Context context, final ContextDestroyer contextDestroyer) {
          Class<?> componentClass = component.getClass();
          while (componentClass != null && !componentClass.equals(Object.class)) {
              final Field[] fields = ClassReflection.getDeclaredFields(componentClass);
              if (fields != null && fields.length > 0) {
                  processFields(component, fields, context, contextDestroyer);
              }
              componentClass = componentClass.getSuperclass();
          }
      }
docs: Scans class tree of component to process all its fields.
  
  @param component all fields of its class tree will be processed.
  @param context used to resolve dependencies.
  @param contextDestroyer used to register destruction callbacks.