disable everything that requires extraneous third-party jarfiles
[org.ibex.xt.git] / src / org / ibex / xt / Servlet.java
index 7a2b58f..01acda7 100644 (file)
@@ -11,33 +11,15 @@ import java.net.*;
 import java.util.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
-import com.thoughtworks.xstream.*;
-import org.prevayler.*;
-import org.prevayler.implementation.snapshot.*;
+//import com.thoughtworks.xstream.*;
+//import org.prevayler.*;
+//import org.prevayler.implementation.snapshot.*;
 
-public class Servlet extends HttpServlet {
+public class Servlet extends Prevalence.PrevalentServlet {
 
     public static final JS METHOD = new JS.Method();
     private ServletScope servletscope = null;
     private String path;
-    private Prevayler prevayler;
-    private JS prevalent;
-    private ServletContext cx = null;
-
-    public void destroy() { try {
-        synchronized(this.getClass()) {
-            Prevayler privatePrevayler = prevayler;
-            if (prevayler == null) return;
-            prevayler = null;
-            Prevalence.destroy(cx, prevayler);
-        }
-    } catch (Exception e) { e.printStackTrace(); } }
-
-    public void init(ServletConfig sc) throws ServletException {
-        cx = sc.getServletContext();
-        prevayler = Prevalence.getPrevayler(cx);
-        prevalent = (JS)prevayler.prevalentSystem();
-    }
 
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { doGet(request, response); }
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
@@ -54,34 +36,36 @@ public class Servlet extends HttpServlet {
     public class ServletScope extends JSSubProperties {
         HttpServletRequest request;
         HttpServletResponse response;
+        HttpSession session;
         ServletContext cx;
         public String getRealPath(String s) { return cx.getRealPath(s); }
         public ServletScope(ServletRequest request, ServletResponse response, ServletContext cx) {
             super();
             this.request = (HttpServletRequest)request;
             this.response = (HttpServletResponse)response;
+            this.session = this.request.getSession();
             this.cx = cx;
         }
 
-        // FIXME: setattributes
-        //#repeat params/cookies/requestHeader/attributes \
-        //        getParameter/getCookie/getHeader/getAttribute \
-        //        getParameterNames/getCookieNames/getHeaderNames/getAttributeNames \
-        //        request/request/request/session/response \
-        //        setParameter/setCookie/setHeader/setAttribute
+        // FIXME: setattributes, cookies
+        //#repeat params/requestHeader/attributes \
+        //        getParameter/getHeader/getAttribute \
+        //        getParameterNames/getHeaderNames/getAttributeNames \
+        //        request/request/session/response \
+        //        setAttribute/setAttribute/setAttribute
         private JS params = new JS.Obj() {
                 public JS get(JS key) throws JSExn { return JSU.S(request.getParameter(JSU.toString(key)).toString()); }
-                public void put(JS key, JS val) throws JSExn { request.setParameter(JSU.toString(key), JSU.toString(val)); }
+                public void put(JS key, JS val) throws JSExn { request.setAttribute(JSU.toString(key), JSU.toString(val)); }
                 public Enumeration keys() throws JSExn {
                     return new JS.Enumeration.JavaStringEnumeration(request.getParameterNames()); }
             };
         //#end
 
+        //case "prevalent":             return (JS)prevayler.prevalentSystem();
         public JS _get(JS key) throws JSExn {
             //#switch(JSU.toString(key))
             case "body":
             case "arg":                   return null;
-            case "prevalent":             return (JS)prevayler.prevalentSystem();
             case "request":               return SUBPROPERTY;
             case "request.user":          return JSU.S(request.getRemoteUser());
             case "request.header":        return requestHeader;
@@ -92,9 +76,9 @@ public class Servlet extends HttpServlet {
             case "request.ssl":           return JSU.B(request.isSecure());
             case "request.path":          return JSU.S(request.getPathInfo());
             case "response":              return SUBPROPERTY;
-            case "response.header":       return responseHeader;
+            case "form":                  return SUBPROPERTY;
+            case "form.fields":           return currentForm.fields();
             case "session":               return SUBPROPERTY;
-            case "session.attr":          return sessionAttributes;
             case "session.created":       return new JSDate(request.getSession(true).getCreationTime());
             case "session.accessed":      return new JSDate(request.getSession(true).getLastAccessedTime());
             case "session.invalidate":    return METHOD;
@@ -103,11 +87,13 @@ public class Servlet extends HttpServlet {
             case "context":               return SUBPROPERTY;
             case "context.list":          return METHOD;
             case "params":                return params;
-            case "cookie":                return cookies;
             //#end
+                // cookie, responseheader needed, session.attributes
             return null;
         }
 
+        Form currentForm = null;
+
         public void put(JS key, JS val) throws JSExn {
             try {
             //#switch(JSU.toString(key))
@@ -115,8 +101,10 @@ public class Servlet extends HttpServlet {
             case "response.redirect":     response.sendRedirect(JSU.toString(val));
             case "response.contentType":  response.setContentType(JSU.toString(val));
             case "transaction":
+                /*
                 try { prevayler.execute(new Prevalence.JSTransaction((JS)val));
                 } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); }
+                */
             //#end
             } catch (IOException e) { throw new JSExn(JSU.S(e.toString())); }
         }