1 /*** 2 * 3 */ 4 package org.promotego.runmode; 5 6 import java.util.LinkedList; 7 import java.util.List; 8 9 import org.springframework.beans.factory.InitializingBean; 10 import org.springframework.beans.factory.annotation.Required; 11 import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 12 import org.springframework.core.io.ClassPathResource; 13 import org.springframework.core.io.Resource; 14 15 /*** 16 * @author alf 17 * 18 */ 19 public class RunModePropertyPlaceholderConfigurer extends 20 PropertyPlaceholderConfigurer implements InitializingBean 21 { 22 private RunModeChooser m_runModeChooser; 23 24 @Required 25 public void setRunModeChooser(RunModeChooser runModeChooser) 26 { 27 m_runModeChooser = runModeChooser; 28 } 29 30 public void afterPropertiesSet() throws Exception 31 { 32 List<Resource> locations = new LinkedList<Resource>(); 33 34 locations.add(new ClassPathResource("app.properties")); 35 RunMode runMode = m_runModeChooser.getRunMode(); 36 locations.add(new ClassPathResource(runMode.toString().toLowerCase() + ".properties")); 37 38 if (runMode == RunMode.DEV) 39 { 40 locations.add(new ClassPathResource("local.properties")); 41 } 42 43 setLocations(locations.toArray(new Resource[locations.size()])); 44 } 45 }