/**
  * Builds search engine identified by its identifier (the "alias" attribute in the service tag),
  * resolved for current siteaccess.
  *
  * @throws \eZ\Bundle\EzPublishCoreBundle\ApiLoader\Exception\InvalidSearchEngine
  *
  * @return \eZ\Publish\SPI\Persistence\Handler
  */
 public function buildSearchEngine()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     if (!(isset($repositoryConfig['search']['engine']) && isset($this->searchEngines[$repositoryConfig['search']['engine']]))) {
         throw new InvalidSearchEngine("Invalid search engine '{$repositoryConfig['search']['engine']}'. " . "Could not find a service tagged as 'ezpublish.searchEngine' " . "with alias '{$repositoryConfig['search']['engine']}'.");
     }
     return $this->searchEngines[$repositoryConfig['search']['engine']];
 }
 /**
  * Builds storage engine identified by $storageEngineIdentifier (the "alias" attribute in the service tag).
  *
  * @throws \eZ\Bundle\EzPublishCoreBundle\ApiLoader\Exception\InvalidStorageEngine
  *
  * @return \eZ\Publish\SPI\Persistence\Handler
  */
 public function buildStorageEngine()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     if (!(isset($repositoryConfig['storage']['engine']) && isset($this->storageEngines[$repositoryConfig['storage']['engine']]))) {
         throw new InvalidStorageEngine("Invalid storage engine '{$repositoryConfig['storage']['engine']}'. " . 'Could not find any service tagged as ezpublish.storageEngine ' . "with alias {$repositoryConfig['storage']['engine']}.");
     }
     return $this->storageEngines[$repositoryConfig['storage']['engine']];
 }
 /**
  * @expectedException \eZ\Bundle\EzPublishCoreBundle\ApiLoader\Exception\InvalidRepositoryException
  */
 public function testGetRepositoryConfigUndefinedRepository()
 {
     $configResolver = $this->getConfigResolverMock();
     $repositories = array('main' => array('engine' => 'foo'), 'another' => array('engine' => 'bar'));
     $configResolver->expects($this->once())->method('getParameter')->with('repository')->will($this->returnValue('undefined_repository'));
     $provider = new RepositoryConfigurationProvider($configResolver, $repositories);
     $provider->getRepositoryConfig();
 }
 public function buildEngine()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     $connection = $this->defaultConnection;
     if (isset($repositoryConfig['search']['connection'])) {
         $connection = $repositoryConfig['search']['connection'];
     }
     return new $this->searchEngineClass($this->container->get("ez_search_engine_solr.connection.{$connection}.gateway_id"), $this->container->get('ezpublish.spi.persistence.content_handler'), $this->container->get('ezpublish.search.solr.document_mapper'), $this->container->get('ezpublish.search.solr.result_extractor'), $this->container->get("ez_search_engine_solr.connection.{$connection}.core_filter_id"));
 }
 public function buildEngine()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     $connection = $this->defaultConnection;
     if (isset($repositoryConfig['search']['connection'])) {
         $connection = $repositoryConfig['search']['connection'];
     }
     return new $this->searchEngineClass($this->container->get(sprintf('%s.%s', EzPublishElasticsearchSearchEngineExtension::CONTENT_SEARCH_GATEWAY_ID, $connection)), $this->container->get(sprintf('%s.%s', EzPublishElasticsearchSearchEngineExtension::LOCATION_SEARCH_GATEWAY_ID, $connection)), $this->container->get('ezpublish.search.elasticsearch.mapper'), $this->container->get('ezpublish.search.elasticsearch.extractor'), $this->container->getParameter("ez_search_engine_elasticsearch.connection.{$connection}.location_document_type_identifier"), $this->container->getParameter("ez_search_engine_elasticsearch.connection.{$connection}.location_document_type_identifier"));
 }
 public function buildEngine()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     $connection = $this->defaultConnection;
     if (isset($repositoryConfig['search']['connection'])) {
         $connection = $repositoryConfig['search']['connection'];
     }
     $engineId = $this->container->getParameter("ez_search_engine_elasticsearch.connection.{$connection}.engine_id");
     return $this->container->get($engineId);
 }
 public function buildEngine()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     $connection = $this->defaultConnection;
     if (isset($repositoryConfig['search']['connection'])) {
         $connection = $repositoryConfig['search']['connection'];
     }
     $contentHandlerId = $this->container->getParameter("ez_search_engine_solr.connection.{$connection}.content_handler_id");
     $locationHandlerId = $this->container->getParameter("ez_search_engine_solr.connection.{$connection}.location_handler_id");
     return new $this->searchEngineClass($this->container->get($contentHandlerId), $this->container->get($locationHandlerId));
 }
 /**
  * Returns database connection used by database handler
  *
  * @throws \InvalidArgumentException
  *
  * @return \Doctrine\DBAL\Connection
  */
 public function getConnection()
 {
     $repositoryConfig = $this->repositoryConfigurationProvider->getRepositoryConfig();
     // Taking provided connection name if any.
     // Otherwise, just fallback to the default connection.
     if (isset($repositoryConfig['search']['connection'])) {
         $doctrineConnectionId = sprintf('doctrine.dbal.%s_connection', $repositoryConfig['search']['connection']);
     } else {
         // "database_connection" is an alias to the default connection, set up by DoctrineBundle.
         $doctrineConnectionId = 'database_connection';
     }
     if (!$this->container->has($doctrineConnectionId)) {
         throw new InvalidArgumentException("Invalid Doctrine connection '{$repositoryConfig['search']['connection']}' for repository '{$repositoryConfig['alias']}'." . "Valid connections are " . implode(', ', array_keys($this->container->getParameter('doctrine.connections'))));
     }
     return $this->container->get($doctrineConnectionId);
 }
 public function build(TranslatorInterface $translator)
 {
     $repositoryConfig = $this->configProvider->getRepositoryConfig();
     return new ArrayTranslatorFieldsGroupsList($translator, $repositoryConfig['fields_groups']['default'], $repositoryConfig['fields_groups']['list']);
 }