class ComponentRuntime extends AbstractComponentContainer {

  public void initializeEagerComponents(boolean isDefaultApp) {
    for (Map.Entry<Component<?>, Lazy<?>> entry : components.entrySet()) {
      Component<?> component = entry.getKey();
      Lazy<?> lazy = entry.getValue();

      if (component.isAlwaysEager() || (component.isEagerInDefaultApp() && isDefaultApp)) {
        lazy.get();
      }
    }

    eventBus.enablePublishingAndFlushPending();
  }

  public  ComponentRuntime(
      Executor defaultEventExecutor,
      Iterable<ComponentRegistrar> registrars,
      Component<?>... additionalComponents);

}