001    package org.kuali.common.util.spring.config;
002    
003    import java.util.ArrayList;
004    import java.util.Arrays;
005    import java.util.List;
006    import java.util.Properties;
007    
008    import org.kuali.common.util.PropertyUtils;
009    import org.kuali.common.util.property.Constants;
010    import org.kuali.common.util.property.processor.ProjectProcessor;
011    import org.kuali.common.util.property.processor.PropertyProcessor;
012    import org.kuali.common.util.property.processor.VersionProcessor;
013    import org.springframework.beans.factory.annotation.Autowired;
014    import org.springframework.beans.factory.annotation.Qualifier;
015    import org.springframework.context.annotation.Bean;
016    import org.springframework.context.annotation.Configuration;
017    import org.springframework.core.env.PropertiesPropertySource;
018    
019    @Configuration
020    public class ProjectPropertiesConfig {
021    
022            @Autowired
023            @Qualifier(Constants.DEFAULT_MAVEN_PROPERTIES_BEAN_NAME)
024            Properties mavenProperties;
025    
026            @Bean
027            public PropertiesPropertySource projectPropertySource() {
028    
029                    List<PropertyProcessor> processors = new ArrayList<PropertyProcessor>();
030                    processors.add(new ProjectProcessor());
031                    processors.add(new VersionProcessor(Arrays.asList("project.version"), true));
032                    PropertyUtils.process(mavenProperties, processors);
033    
034                    String name = Constants.DEFAULT_MAVEN_PROPERTIES_BEAN_NAME;
035                    return new PropertiesPropertySource(name, mavenProperties);
036            }
037    }