public function process(ContainerBuilder $container)
 {
     $serviceDefinitions = $container->getDefinitions();
     $validatorFactory = new ServiceDefinitionValidatorFactory($this->configuration);
     $validator = $validatorFactory->create($container);
     $batchValidator = new BatchServiceDefinitionValidator($validator, new ValidationErrorFactory());
     $errorList = $batchValidator->validate($serviceDefinitions);
     if (count($errorList) === 0) {
         return;
     }
     $errorListPrinter = new SimpleErrorListPrinter();
     $message = $errorListPrinter->printErrorList($errorList);
     throw new InvalidServiceDefinitionsException($message);
 }
 /**
  * Validates the definitions in the provided container and returns a list of errors.
  *
  * @param ContainerBuilder $container
  * @return ValidationErrorList
  */
 protected function validateContainer(ContainerBuilder $container)
 {
     $validatorFactory = new ServiceDefinitionValidatorFactory();
     $validator = $validatorFactory->create($container);
     $errors = new ValidationErrorList();
     foreach ($container->getDefinitions() as $serviceId => $definition) {
         try {
             $validator->validate($definition);
             return $errors;
         } catch (\Exception $exception) {
             $error = new ValidationError($serviceId, $definition, $exception);
             $errors->add($error);
         }
     }
     return $errors;
 }