/**
   * Wires components as necessary, and then {@link ApplicationScopedComponent#init() init}ializes
   * all.
   */
  @Override
  public void init() {
    templateImageLoader.init();

    specificationLoaderSpi.setContainer(container);
    specificationLoaderSpi.setServices(serviceList);
    specificationLoaderSpi.init();

    // must come after init of spec loader.
    specificationLoaderSpi.injectInto(persistenceSessionFactory);
    persistenceSessionFactory.setContainer(container);
    persistenceSessionFactory.setServices(serviceList);
    userProfileLoader.setServices(serviceList);

    authenticationManager.init();
    authorizationManager.init();
    persistenceSessionFactory.init();
  }