synchronized (beanManager) {
T managedObject;
AnnotatedType annotatedType = beanManager.createAnnotatedType(c);
InjectionTarget it = beanManager.createInjectionTarget(annotatedType);
CreationalContext cc = beanManager.createCreationalContext(null);
managedObject = (T) it.produce(cc);
it.inject(managedObject, cc);
it.postConstruct(managedObject);
cdiBeanToContext.put(managedObject, new CdiInjectionContext(it, cc));
return managedObject;