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; }