private ClientManager(String containerProviderClassName, WebSocketContainer webSocketContainer) {
   final ErrorCollector collector = new ErrorCollector();
   componentProvider = ComponentProviderService.createClient();
   Class engineProviderClazz;
   try {
     engineProviderClazz = ReflectionHelper.classForNameWithException(containerProviderClassName);
   } catch (ClassNotFoundException e) {
     collector.addException(e);
     throw new RuntimeException(collector.composeComprehensiveException());
   }
   LOGGER.config(String.format("Provider class loaded: %s", containerProviderClassName));
   this.container = (ClientContainer) ReflectionHelper.getInstance(engineProviderClazz, collector);
   if (!collector.isEmpty()) {
     throw new RuntimeException(collector.composeComprehensiveException());
   }
   this.webSocketContainer = webSocketContainer;
 }