title: When is the @Initialized(ApplicationScoped.class) event sent in CDI?
body: <p>I'm trying to understand the lifecycle/flow of the @Initialized() events within the context of the CDI Container's events thrown that are observable in an extension.</p>
  
  <p>As per the <a href="http://docs.jboss.org/weld/reference/2.3.5.Final/en-US/html_single/#_container_lifecycle_events" rel="noreferrer">WELD 2 docs, the Container lifecycle events</a> are:</p>
  
  <blockquote>
    <ul>
    <li>BeforeBeanDiscovery </li>
    <li>ProcessAnnotatedType and   ProcessSyntheticAnnotatedType </li>
    <li>AfterTypeDiscovery</li>
    <li>ProcessInjectionTarget and ProcessProducer </li>
    <li>ProcessInjectionPoint</li>
    <li>ProcessBeanAttributes </li>
    <li>ProcessBean, ProcessManagedBean,    ProcessSessionBean, ProcessProducerMethod and ProcessProducerField</li>
    <li>ProcessObserverMethod </li>
    <li>AfterBeanDiscovery </li>
    <li>AfterDeploymentValidation</li>
    <li>BeforeShutdown</li>
    </ul>
  </blockquote>
  
  <p>What I'm having trouble finding out is where during this container lifecycle would the <a href="https://docs.oracle.com/javaee/7/api/javax/enterprise/context/Initialized.html" rel="noreferrer"><code>@Initialized</code></a> event be triggered.  I suspect that it is done AfterDeploymentValidation, but I cannot find any documentation to support that fact.  Additionally, I can't seem to find anything in the <a href="http://docs.jboss.org/cdi/spec/1.1/cdi-spec.html#application_context" rel="noreferrer">CDI 1.1 spec</a> which dictates when/where the @Initalized event is thrown.</p>
  
  <p>For instance, is the event thrown before or after all the <code>@PostConstruct</code> methods of discovered beans is executed?  Is the event thrown before or after an EJB <a href="https://docs.oracle.com/javaee/6/api/javax/ejb/Startup.html" rel="noreferrer"><code>@Startup</code></a> is initialized?  Is there any documentation that clearly lists the order/sequence of these events in CDI?</p>