@Override public ManagedReferenceFactory createFactory(Class<?> clazz) { final BeanManager beanManager = this.beanManagerSupplier.get(); final InjectionTarget injectionTarget = getInjectionTarget(clazz); return new ManagedReferenceFactory() { @Override public ManagedReference getReference() { final CreationalContext context = beanManager.createCreationalContext(null); final Object instance = injectionTarget.produce(context); injectionTarget.inject(instance, context); injectionTarget.postConstruct(instance); return new WeldManagedReference(injectionTarget, context, instance); } }; }
@Override public ManagedReference createInstance(final Object instance) { final BeanManager beanManager = beanManagerSupplier.get(); final InjectionTarget injectionTarget = getInjectionTarget(instance.getClass()); final CreationalContext context = beanManager.createCreationalContext(null); injectionTarget.inject(instance, context); injectionTarget.postConstruct(instance); return new WeldManagedReference(injectionTarget, context, instance); }