code: private static ContextRuntime getRootContext(final Injector injector,
                                                 final Configuration rootContextConfiguration,
                                                 final Optional<Configuration> rootServiceConfiguration)
        throws ContextClientCodeException {
      final ContextRuntime result;
      if (rootServiceConfiguration.isPresent()) {
        final Injector rootServiceInjector;
        try {
          rootServiceInjector = injector.forkInjector(rootServiceConfiguration.get());
        } catch (final BindException e) {
          throw new ContextClientCodeException(ContextClientCodeException.getIdentifier(rootContextConfiguration),
              Optional.<String>empty(), "Unable to instatiate the root context", e);
        }
        result = new ContextRuntime(rootServiceInjector, rootContextConfiguration);
      } else {
        result = new ContextRuntime(injector.forkInjector(), rootContextConfiguration);
      }
      return result;
    }
docs: Instantiates the root context.
  <p>
  This also launches the initial task if there is any.
  
  @param injector
  @param rootContextConfiguration
  @param rootServiceConfiguration
  @return ContextRuntime
  @throws ContextClientCodeException