package com.dgrid.driver;
import java.io.File;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public abstract class BaseDgridDriver {
private static String[] defaultSpringPaths = new String[] {
"/applicationContext.xml", "/applicationContext-hibernate.xml" };
private static Log log = LogFactory.getLog(BaseDgridDriver.class);
protected static AbstractApplicationContext getContext() {
AbstractApplicationContext ctx = null;
String springConfig = System.getProperty("spring.config");
if ((springConfig != null) && (springConfig.length() > 0)) {
File file = new File(springConfig);
if (file.exists() && file.canRead()) {
if (log.isDebugEnabled()) {
log.debug(String.format(
"Loading spring context from file %1$s",
springConfig));
}
ctx = new FileSystemXmlApplicationContext(springConfig);
} else {
log
.warn(String
.format(
"Attempt to load spring context from non-existent or non-readable file %1$s. Using defaults.",
springConfig));
}
}
if (ctx == null) {
ctx = new ClassPathXmlApplicationContext(defaultSpringPaths);
}
return ctx;
}
}