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);
}
}