Added an optional server-context name fetching operation.
[jsvc.git] / src / dolda / jsvc / j2ee / J2eeContext.java
index 5049d26..bf1917c 100644 (file)
@@ -3,50 +3,24 @@ 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 {
+public abstract class J2eeContext implements ServerContext {
     private final ServletConfig sc;
     private final long ctime;
-    private final Properties config;
+    protected final Properties config;
     
-    J2eeContext(ServletConfig sc) {
+    protected J2eeContext(ServletConfig sc) {
        this.sc = sc;
        this.ctime = System.currentTimeMillis();
-       config = readconfig(sc);
+       config = new Properties();
     }
     
-    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);
+    static J2eeContext create(ServletConfig sc) {
+       if(TomcatContext.tomcatp(sc))
+           return(new TomcatContext(sc));
+       return(new StandardContext(sc));
     }
     
     public long starttime() {