package org.pegadi.webapp.spring; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.web.context.ConfigurableWebApplicationContext; import org.springframework.web.context.ContextLoader; import org.springframework.web.context.ContextLoaderListener; import javax.servlet.ServletContext; import java.util.Properties; /** * @author Marvin B. Lillehaug <lillehau@underdusken.no> */ public class PegadiContextLoaderListener extends ContextLoaderListener { private Logger log = LoggerFactory.getLogger(getClass()); @Override protected ContextLoader createContextLoader() { return new ContextLoader(){ @Override protected void customizeContext(ServletContext servletContext, ConfigurableWebApplicationContext configurableWebApplicationContext) { addPropertyReplacer(configurableWebApplicationContext); } }; } public void addPropertyReplacer(ConfigurableWebApplicationContext wac) { PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer(); final Properties properties = new Properties(); String developerMode = Boolean.toString(System.getProperty("developerMode") != null); log.info("Developermode: {}", developerMode ); properties.setProperty("developerMode", developerMode); configurer.setProperties(properties); configurer.setIgnoreUnresolvablePlaceholders(true); wac.addBeanFactoryPostProcessor(configurer); } }