package uk.ac.ebi.ep.xml.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import uk.ac.ebi.ep.data.service.EnzymePortalXmlService; import uk.ac.ebi.ep.xml.generator.EnzymeCentric; import uk.ac.ebi.ep.xml.generator.XmlGenerator; /** * main configuration for this module * * @author joseph */ @Configuration @Import({EnzymePortalXmlService.class}) @PropertySource(value = "classpath:ep-xml-config.properties", ignoreResourceNotFound = true) public class XmlConfig { @Autowired private Environment env; @Autowired private EnzymePortalXmlService enzymePortalXmlService; @Bean(name = "enzymeCentric") public XmlGenerator enzymeCentric() { return new EnzymeCentric(enzymePortalXmlService, xmlConfigParams()); } @Bean public XmlConfigParams xmlConfigParams() { XmlConfigParams params = new XmlConfigParams(); params.setChunkSize(chunkSize()); params.setEbeyeXSDs(ebeyeXSDs()); params.setEnzymeCentricXmlDir(enzymeCentricXmlDir()); params.setProteinCentricXmlDir(proteinCentricXmlDir()); params.setReleaseNumber(releaseNumber()); params.setXmlDir(xmlDir()); return params; } public String releaseNumber() { return env.getProperty("release.number"); } public String enzymeCentricXmlDir() { return env.getProperty("ep.enzyme.centric.xml.dir"); } public String proteinCentricXmlDir() { return env.getProperty("ep.protein.centric.xml.dir"); } public String ebeyeXSDs() { return env.getProperty("ep.ebeye.xsd"); } private int chunkSize() { return Integer.parseInt(env.getProperty("ep.protein.centric.chunk")); } private String xmlDir(){ return env.getProperty("ep.xml.dir"); } }