001package org.kuali.common.util.xml.spring; 002 003import org.kuali.common.util.spring.env.EnvironmentService; 004import org.kuali.common.util.spring.service.SpringServiceConfig; 005import org.kuali.common.util.xml.jaxb.JAXBXmlService; 006import org.kuali.common.util.xml.service.XmlService; 007import org.springframework.beans.factory.annotation.Autowired; 008import org.springframework.context.annotation.Bean; 009import org.springframework.context.annotation.Configuration; 010import org.springframework.context.annotation.Import; 011 012@Configuration 013@Import({ SpringServiceConfig.class }) 014public class XmlServiceConfig { 015 016 private static final String FORMAT_OUTPUT_KEY = "jaxb.formatOutput"; 017 private static final String USE_NAMESPACE_AWARE_PARSER_KEY = "jaxb.useNamespaceAwareParser"; 018 private static final String USE_ECLIPSE_LINK_MOXY_PROVIDER_KEY = "jaxb.useEclipseLinkMoxyProvider"; 019 020 @Autowired 021 EnvironmentService env; 022 023 @Bean 024 public XmlService xmlService() { 025 boolean formatOutput = env.getBoolean(FORMAT_OUTPUT_KEY, JAXBXmlService.Builder.FORMAT_OUTPUT); 026 boolean nap = env.getBoolean(USE_NAMESPACE_AWARE_PARSER_KEY, JAXBXmlService.Builder.USE_NAMESPACE_AWARE_PARSER); 027 boolean elmp = env.getBoolean(USE_ECLIPSE_LINK_MOXY_PROVIDER_KEY, JAXBXmlService.Builder.USE_ECLIPSE_LINK_MOXY_PROVIDER); 028 return JAXBXmlService.builder().formatOutput(formatOutput).useNamespaceAwareParser(nap).useEclipseLinkMoxyProvider(elmp).build(); 029 } 030}