From b1488beee36000cffb89e64787b8280404ba8c6b Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Thu, 15 Oct 2009 06:51:39 +0200 Subject: [PATCH] Added some possibilities for local configuration. --- src/dolda/jsvc/j2ee/J2eeContext.java | 51 +++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/src/dolda/jsvc/j2ee/J2eeContext.java b/src/dolda/jsvc/j2ee/J2eeContext.java index 5409b8c..c6e09df 100644 --- a/src/dolda/jsvc/j2ee/J2eeContext.java +++ b/src/dolda/jsvc/j2ee/J2eeContext.java @@ -4,17 +4,60 @@ import dolda.jsvc.*; import dolda.jsvc.util.*; import javax.servlet.*; import javax.servlet.http.*; +import java.util.*; +import java.io.*; public class J2eeContext implements ServerContext { - private ServletConfig cfg; - private long ctime; + private final ServletConfig sc; + private final long ctime; + private final Properties config; - J2eeContext(ServletConfig cfg) { - this.cfg = cfg; + J2eeContext(ServletConfig sc) { + this.sc = sc; this.ctime = System.currentTimeMillis(); + config = readconfig(sc); + } + + private static void loadprops(Properties props, File pfile) { + if(!pfile.exists()) + return; + try { + InputStream in = new FileInputStream(pfile); + try { + props.load(in); + } finally { + in.close(); + } + } catch(IOException e) { + throw(new RuntimeException(e)); + } + } + + private static Properties readconfig(ServletConfig sc) { + /* This only works on Tomcat now, but that's because I've no + * idea how other J2EE servers work. I don't even know if they + * _have_ any reasonable place to put configuration and + * storage. */ + Properties cfg = new Properties(); + String basename = System.getProperty("catalina.base"); + if(basename != null) { + File base = new File(basename); + cfg.put("jsvc.storage", new File(new File(base, "work"), "jsvc").getPath()); + File cdir = new File(base, "conf"); + loadprops(cfg, new File(cdir, "jsvc.properties")); + } + return(cfg); } public long starttime() { return(ctime); } + + public Properties config() { + return(config); + } + + public ServletConfig j2eeconfig() { + return(sc); + } } -- 2.11.0