001    /**
002     * Copyright 2011 The Kuali Foundation Licensed under the
003     * Educational Community License, Version 2.0 (the "License"); you may
004     * not use this file except in compliance with the License. You may
005     * obtain a copy of the License at
006     *
007     * http://www.osedu.org/licenses/ECL-2.0
008     *
009     * Unless required by applicable law or agreed to in writing,
010     * software distributed under the License is distributed on an "AS IS"
011     * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012     * or implied. See the License for the specific language governing
013     * permissions and limitations under the License.
014     */
015    
016    package org.kuali.common.impex.spring;
017    
018    import java.io.IOException;
019    import javax.xml.bind.JAXBException;
020    
021    import org.kuali.common.impex.ProducerUtils;
022    import org.kuali.common.impex.model.Schema;
023    import org.kuali.common.util.spring.SpringUtils;
024    import org.springframework.beans.factory.annotation.Autowired;
025    import org.springframework.context.annotation.Bean;
026    import org.springframework.context.annotation.Configuration;
027    import org.springframework.core.env.Environment;
028    
029    @Configuration
030    public class XmlSchemaConfig {
031    
032        protected final static String XML_LOCATION_KEY = "impex.schema.location";
033    
034        @Autowired
035        Environment env;
036    
037        @Bean
038        public Schema schema() throws JAXBException, IOException {
039            String xmlLocation = SpringUtils.getProperty(env, XML_LOCATION_KEY);
040    
041            return ProducerUtils.unmarshalSchema(xmlLocation);
042        }
043    
044    }