浏览代码

Change context name/value pairs.

tags/CommEngine-0.0.1
ymlam 6 年前
父节点
当前提交
705aedcac9
共有 1 个文件被更改,包括 26 次插入6 次删除
  1. +26
    -6
      src/altk/comm/engine/CommEngine.java

+ 26
- 6
src/altk/comm/engine/CommEngine.java 查看文件

@@ -5,6 +5,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
@@ -83,6 +84,9 @@ public abstract class CommEngine extends HttpServlet


private int postbackMaxBatchSize; private int postbackMaxBatchSize;


protected String runtimeDirPath;
protected String confDirPath;

abstract protected Broadcast mkBroadcast(); abstract protected Broadcast mkBroadcast();
public CommEngine(String engineName) public CommEngine(String engineName)
@@ -100,22 +104,36 @@ public abstract class CommEngine extends HttpServlet
{ {
// check init parameters // check init parameters
ServletContext servletContext = getServletContext(); ServletContext servletContext = getServletContext();
String propertiesFilePath;
propertiesFilePath = servletContext.getInitParameter(getPropertiesContextName());
File propertiesFile = new File(propertiesFilePath);
confDirPath = servletContext.getInitParameter(getConfDirContextName());
runtimeDirPath = servletContext.getInitParameter(getRunTimeDirContextName());
File propertiesFile = new File(confDirPath + "/properties");
// Configure log4j using log4j.properties file, \ // Configure log4j using log4j.properties file, \
// sibling to the engine properties file. // sibling to the engine properties file.
// This change is backward compatible with placing the log4j.properties file in // This change is backward compatible with placing the log4j.properties file in
// the class path. // the class path.
String log4j_properties = propertiesFile.getParent() + "/log4j.properties";
String log4j_properties = confDirPath + "/log4j.properties";
// Relocate file property offetting it by the runtimeDirPath
try try
{ {
PropertyConfigurator.configure(log4j_properties);
Properties prop = new Properties();
prop.load(new FileInputStream(log4j_properties));
Enumeration<Object> e = prop.keys();
while (e.hasMoreElements())
{
String key = (String)e.nextElement();
if (key.toLowerCase().endsWith(".file"))
{
prop.setProperty(key, runtimeDirPath + "/" + prop.getProperty(key));
System.out.println(key + "=" + prop.getProperty(key));
}
}
PropertyConfigurator.configure(prop);
} }
catch (Exception e) catch (Exception e)
{ {
System.out.println("Failed to configure log4: " + e);
// Do nothing, assuming the exception is FileNotFoundException. // Do nothing, assuming the exception is FileNotFoundException.
// Remaining log4j initialization will look for log4j.properties // Remaining log4j initialization will look for log4j.properties
// file in the class path. // file in the class path.
@@ -203,7 +221,9 @@ public abstract class CommEngine extends HttpServlet
* @return name of parameter in Tomcat context file, specifying properties file * @return name of parameter in Tomcat context file, specifying properties file
* for this SMSEngine. * for this SMSEngine.
*/ */
protected abstract String getPropertiesContextName();
protected abstract String getConfDirContextName();
protected abstract String getRunTimeDirContextName();


@Override @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) protected void doPost(HttpServletRequest request, HttpServletResponse response)


正在加载...
取消
保存