@Override
  public Object getComponentInstance() {
    Object instance = myInstance;
    if (instance == null) {
      instance = instantiateGuarded(this, container, getComponentImplementation());
      myInstance = instance;
    }
    return instance;
  }
@Override
  public Object getComponentInstance()