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 }