public final void init() {
    log.info("Initializing application: " + getId());
    try {
      fireApplicationConfigurerOnInit();

      onInit();
      ApplicationRegister.getInstance().registerApplication(this);
    } catch (Exception e) {
      raiseException(e, "error.application.init");
    }
  }
  public final void dispose() {
    log.info("Disposing application: " + getId());
    try {
      fireApplicationConfigurerOnDispose();

      objectRegister = null;
      messageRegister = null;

      onDispose();
      ApplicationRegister.getInstance().unregisterApplication(this);
      System.exit(0);
    } catch (Exception e) {
      raiseException(e, "error.application.dispose");
    }
  }