/** * 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.context; import com.lyncode.xoai.dataprovider.core.XOAIManager; import com.lyncode.xoai.dataprovider.services.api.ResourceResolver; import org.dspace.xoai.services.api.config.XOAIManagerResolver; import org.dspace.xoai.services.api.config.XOAIManagerResolverException; import org.dspace.xoai.services.api.xoai.DSpaceFilterResolver; import org.springframework.beans.factory.annotation.Autowired; import static com.lyncode.xoai.dataprovider.xml.xoaiconfig.Configuration.readConfiguration; public class DSpaceXOAIManagerResolver implements XOAIManagerResolver { public static final String XOAI_CONFIGURATION_FILE = "xoai.xml"; @Autowired ResourceResolver resourceResolver; @Autowired DSpaceFilterResolver filterResolver; private XOAIManager manager; @Override public XOAIManager getManager() throws XOAIManagerResolverException { if (manager == null) { try { manager = new XOAIManager(filterResolver, resourceResolver, readConfiguration(resourceResolver.getResource(XOAI_CONFIGURATION_FILE))); } catch (Exception e) { throw new XOAIManagerResolverException(e); } } return manager; } }