code: @Override
      public T create(CreationalContext<T> creationalContext) {
          T instance = getProducer().produce(creationalContext);
          getProducer().inject(instance, creationalContext);
  
          if (!hasPostConstructCallback || beanManager.isContextActive(RequestScoped.class)) {
              getProducer().postConstruct(instance);
          } else {
              /*
               * CDI-219
               * The request scope is active during @PostConstruct callback of any bean.
               */
              RequestContext context = getUnboundRequestContext();
              try {
                  context.activate();
                  beanManager.fireRequestContextInitialized(getId());
                  getProducer().postConstruct(instance);
              } finally {
                  beanManager.fireRequestContextBeforeDestroyed(getId());
                  context.invalidate();
                  context.deactivate();
                  beanManager.fireRequestContextDestroyed(getId());
              }
          }
          return instance;
      }
docs: Creates an instance of the bean
  
  @return The instance