X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdolda%2Fjsvc%2Fj2ee%2FJ2eeContext.java;h=f687afd3f158b6be29c2e5f284dacd087759a8c7;hb=13e578b10b388cc0dea88e05b79265c21416e3a0;hp=f2531280ff7da64c8030e57f230269a73e05eaba;hpb=6f1acdb2f8879097cdd8c6cedfc0d6752f2b29ef;p=jsvc.git diff --git a/src/dolda/jsvc/j2ee/J2eeContext.java b/src/dolda/jsvc/j2ee/J2eeContext.java index f253128..f687afd 100644 --- a/src/dolda/jsvc/j2ee/J2eeContext.java +++ b/src/dolda/jsvc/j2ee/J2eeContext.java @@ -1,21 +1,50 @@ package dolda.jsvc.j2ee; 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 HttpServletRequest req; - private HttpServletResponse resp; +public abstract class J2eeContext implements ServerContext { + private final ServletConfig sc; + private final long ctime; + protected final Properties sysconfig, libconfig; - J2eeContext(ServletConfig cfg, HttpServletRequest req, HttpServletResponse resp) { - this.cfg = cfg; - this.req = req; - this.resp = resp; + protected J2eeContext(ServletConfig sc) { + this.sc = sc; + this.ctime = System.currentTimeMillis(); + sysconfig = new Properties(); + libconfig = new Properties(); } - public String rootpath() { - return(req.getContextPath()); + static J2eeContext create(ServletConfig sc) { + if(TomcatContext.tomcatp(sc)) + return(new TomcatContext(sc)); + return(new StandardContext(sc)); + } + + public long starttime() { + return(ctime); + } + + public String sysconfig(String key, String def) { + return(sysconfig.getProperty(key, def)); + } + + public String libconfig(String key, String def) { + return(libconfig.getProperty(key, def)); + } + + void loadconfig(InputStream in) throws IOException { + libconfig.load(in); + } + + public ServletConfig j2eeconfig() { + return(sc); + } + + public RequestThread worker(Responder root, Request req, ThreadGroup tg, String name) { + return(new RequestThread(root, req, tg, name)); } }