/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.xoai.services.impl.xoai; import com.lyncode.xoai.dataprovider.services.api.ItemRepository; import org.apache.solr.client.solrj.SolrServerException; import org.dspace.xoai.services.api.config.ConfigurationService; import org.dspace.xoai.services.api.context.ContextService; import org.dspace.xoai.services.api.context.ContextServiceException; import org.dspace.xoai.services.api.CollectionsService; import org.dspace.xoai.services.api.HandleResolver; import org.dspace.xoai.services.api.solr.SolrQueryResolver; import org.dspace.xoai.services.api.solr.SolrServerResolver; import org.dspace.xoai.services.api.xoai.ItemRepositoryResolver; import org.springframework.beans.factory.annotation.Autowired; public class DSpaceItemRepositoryResolver implements ItemRepositoryResolver { @Autowired ContextService contextService; @Autowired ConfigurationService configurationService; @Autowired SolrServerResolver solrServerResolver; @Autowired SolrQueryResolver solrQueryResolver; @Autowired CollectionsService collectionsService; @Autowired private HandleResolver handleResolver; private ItemRepository itemRepository; @Override public ItemRepository getItemRepository() throws ContextServiceException { if (itemRepository == null) { try { itemRepository = new DSpaceItemSolrRepository( solrServerResolver.getServer(), collectionsService, handleResolver, solrQueryResolver); } catch (SolrServerException e) { throw new ContextServiceException(e.getMessage(), e); } } return itemRepository; } }