@Override
  public final ComponentAdapter registerComponentImplementation(@NotNull Object componentKey, @NotNull Class<?> componentImplementation) {
    //noinspection deprecation
    return registerComponent(new CachingConstructorInjectionComponentAdapter(this, componentKey, componentImplementation));
  }
@Override
  public final ComponentAdapter registerComponentImplementation(@NotNull Object componentKey, @NotNull Class<?> componentImplementation)