package railo.loader.engine; import java.io.IOException; import java.net.URL; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import railo.runtime.CFMLFactory; import railo.runtime.PageContext; import railo.runtime.util.Cast; import railo.runtime.util.Creation; import railo.runtime.util.Decision; import railo.runtime.util.Excepton; import railo.runtime.util.HTTPUtil; import railo.runtime.util.Operation; import railo.runtime.util.ResourceUtil; import railo.runtime.util.ZipUtil; import railo.runtime.video.VideoUtil; /** * The CFML Engine */ public interface CFMLEngine { /** * Field <code>CAN_UPDATE</code> */ public static int CAN_UPDATE=0; /** * Field <code>CAN_RESTART</code> */ public static int CAN_RESTART=1; public static int CAN_RESTART_ALL=CAN_RESTART; public static int CAN_RESTART_CONTEXT=2; public abstract CFMLFactory getCFMLFactory(ServletContext srvContext, ServletConfig srvConfig,HttpServletRequest req) throws ServletException; /** * adds a servlet config * @param config * @throws ServletException */ public abstract void addServletConfig(ServletConfig config) throws ServletException; /** * method to invoke the engine for CFML * @param servlet * @param req * @param rsp * @throws ServletException * @throws IOException * @throws ServletException */ public void serviceCFML(HttpServlet servlet, HttpServletRequest req, HttpServletResponse rsp) throws IOException, ServletException; /** * method to invoke the engine for AMF * @param servlet * @param req * @param rsp * @throws ServletException * @throws IOException */ public void serviceAMF(HttpServlet servlet, HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException; /* * * method to invoke the engine for AMF * @param serviceAdapter * @param message * @return * / //public Object executeFlex(ServiceAdapter serviceAdapter, Message message);*/ /** * method to invoke the engine for a simple file * @param servlet * @param req * @param rsp * @throws ServletException * @throws IOException */ public void serviceFile(HttpServlet servlet, HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException; /** * method to invoke the engine for a Rest Requests * @param servlet * @param req * @param rsp * @throws ServletException * @throws IOException */ public abstract void serviceRest(HttpServlet servlet, HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException; /** * @return returns the version of the engine in the format [x.x.x.xxx] */ public String getVersion(); /** * @return returns the stae of the version (alpha,beta,rc,final) */ public String getState(); /** * @return returns how this engine will be updated (auto, manuell) */ public String getUpdateType(); /** * @return return location URL to get updates for the engines */ public URL getUpdateLocation(); /** * checks if process has the right to do was given with type, the engine with given password * @param type restart type (CFMLEngine.CAN_UPDATE, CFMLEngine.CAN_RESTART) * @param password * @return has right */ public boolean can(int type, String password); /** * @return returns the engine that has produced this engine */ public CFMLEngineFactory getCFMLEngineFactory(); /** * reset the engine */ public void reset(); /** * reset the engine */ public void reset(String configId); /** * return the cast util * @return operaton util */ public Cast getCastUtil(); /** * return the operation util * @return operaton util */ public Operation getOperatonUtil(); /** * returns the decision util * @return decision util */ public Decision getDecisionUtil(); /** * returns the decision util * @return decision util */ public Excepton getExceptionUtil(); /** * returns the decision util * @return decision util */ public Creation getCreationUtil(); /** * returns the FusionDebug Engine * @return IFDController */ public Object getFDController(); /** * returns the Blaze DS Util * @return Blaze DS Util */ public Object getBlazeDSUtil(); /** * returns the Resource Util * @return Blaze DS Util */ public ResourceUtil getResourceUtil(); /** * returns the HTTP Util * @return the HTTP Util */ public HTTPUtil getHTTPUtil(); /** * @return return PageContext for the current PageContext */ public PageContext getThreadPageContext(); public VideoUtil getVideoUtil(); public ZipUtil getZipUtil(); public abstract void cli(Map<String, String> config, ServletConfig servletConfig) throws IOException, JspException, ServletException; public abstract void registerThreadPageContext(PageContext pc); // FUTURE add public ConfigServer getConfigServer(String password); // FUTURE add public ConfigServer getConfigServer(String key, long timeNonce); }