001    package org.kuali.common.jdbc.project.spring;
002    
003    import java.util.ArrayList;
004    import java.util.List;
005    
006    import org.kuali.common.jdbc.project.JdbcProjectConstants;
007    import org.kuali.common.util.project.model.ProjectIdentifier;
008    import org.kuali.common.util.properties.Location;
009    import org.kuali.common.util.properties.PropertiesLocationService;
010    import org.kuali.common.util.properties.spring.PropertiesLocationServiceConfig;
011    import org.springframework.beans.factory.annotation.Autowired;
012    import org.springframework.context.annotation.Bean;
013    import org.springframework.context.annotation.Configuration;
014    import org.springframework.context.annotation.Import;
015    
016    import com.google.common.collect.ImmutableList;
017    
018    @Configuration
019    @Import({ PropertiesLocationServiceConfig.class })
020    public class JdbcPropertyLocationsConfig {
021    
022            private static final ProjectIdentifier SQL = JdbcProjectConstants.KUALI_SQL;
023            private static final ProjectIdentifier JDBC = JdbcProjectConstants.PROJECT_ID;
024    
025            @Autowired
026            PropertiesLocationService service;
027    
028            @Bean
029            public List<Location> jdbcPropertyLocations() {
030                    List<Location> locations = new ArrayList<Location>();
031                    locations.addAll(service.getLocations(SQL, getSqlFilenames()));
032                    locations.addAll(service.getLocations(JDBC, "config.properties"));
033                    return ImmutableList.copyOf(locations);
034            }
035    
036            protected List<String> getSqlFilenames() {
037                    List<String> filenames = new ArrayList<String>();
038                    filenames.add("derby.xml");
039                    filenames.add("h2.xml");
040                    filenames.add("mysql.xml");
041                    filenames.add("oracle.xml");
042                    filenames.add("sql.xml");
043                    return filenames;
044            }
045    
046    }