class BasicComponentFactory implements Supplier<T> {

    @Override
    public T get() {
        if (classLoader == null)
            return ClassUtils.newInstance(componentClass);
        return ClassUtils.newInstance(componentClass, classLoader);
    }

    public  BasicComponentFactory(final Class<T> componentClass);
    public  BasicComponentFactory(final Class<T> componentClass,
                                 final ClassLoader classLoader);

}