X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2FOpenMir.java;h=97ae802cdaea90b9fcc72694e706e47481f4656e;hb=2e41bd19a0ce347e4c6e8c952fe4a108a435bd80;hp=1daa016ae715534e0d754e58920fe7b9a831336b;hpb=0d512e810fc3838b6787c2a866864481d79c93ca;p=mir.git diff --git a/source/OpenMir.java b/source/OpenMir.java index 1daa016a..97ae802c 100755 --- a/source/OpenMir.java +++ b/source/OpenMir.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001, 2002 The Mir-coders group + * Copyright (C) 2001-2006 The Mir-coders group * * This file is part of Mir. * @@ -19,8 +19,6 @@ * * In addition, as a special exception, The Mir-coders gives permission to link * the code of this program with any library licensed under the Apache Software License, - * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library - * (or with modified versions of the above that use the same license as the above), * and distribute linked combinations including the two. You must obey the * GNU General Public License in all respects for all of the code used other than * the above mentioned libraries. If you modify this file, you may extend this @@ -28,40 +26,45 @@ * If you do not wish to do so, delete this exception statement from your version. */ -import java.io.IOException; -import java.io.PrintWriter; +import mir.servlet.AbstractServlet; +import mir.servlet.ServletModuleUserExc; +import mir.util.ExceptionRoutines; +import mircoders.servlet.ServletModuleOpenIndy; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; - -import mir.servlet.AbstractServlet; -import mir.servlet.ServletModuleDispatch; -import mir.servlet.ServletModuleUserExc; -import mir.util.ExceptionFunctions; -import mircoders.servlet.ServletModuleOpenIndy; +import java.io.IOException; +import java.io.PrintWriter; /** * OpenMir.java - main servlet for open posting and comment feature to articles * * @author RK 1999-2001, the mir-coders group - * @version $Id: OpenMir.java,v 1.35.2.2 2003/10/23 14:55:26 rk Exp $ + * @version $Id: OpenMir.java,v 1.35.2.8 2006/08/10 19:29:33 zapata Exp $ * */ public class OpenMir extends AbstractServlet { - public void process(HttpServletRequest aRequest, HttpServletResponse aResponse) - throws ServletException, IOException { - if ((configuration.getString("RootUri") == null) || - configuration.getString("RootUri").equals("")) { - configuration.setProperty("RootUri", aRequest.getContextPath()); - } + private ServletModuleOpenIndy servletModule; - long startTime = System.currentTimeMillis(); - long sessionConnectTime=0; + private synchronized ServletModuleOpenIndy getServletModule() { + if (servletModule == null) { + servletModule = new ServletModuleOpenIndy(); + } + + return servletModule; + } + + public void process(HttpServletRequest aRequest, + HttpServletResponse aResponse) throws ServletException, IOException { + if ("".equals(configuration.getString("RootUri", ""))) { + configuration.setProperty("RootUri", aRequest.getContextPath()); + } + long startTime = System.currentTimeMillis(); HttpSession session = aRequest.getSession(); @@ -73,28 +76,37 @@ public class OpenMir extends AbstractServlet { aResponse.setContentType("text/html; charset="+configuration.getString("Mir.DefaultHTMLCharset")); try { - ServletModuleDispatch.dispatch(ServletModuleOpenIndy.getInstance(), aRequest, aResponse); + // call appropriate ServletModuleOpenIndy method + // as specified in http request + // example: OpenMir?do=opensession calls the opensession method + + getServletModule().handleRequest(aRequest, aResponse); } catch (Throwable e) { - Throwable cause = ExceptionFunctions.traceCauseException(e); + logger.warn("Error in open publishing", e); - if (cause instanceof ServletModuleUserExc) + Throwable cause = ExceptionRoutines.traceCauseException(e); + + if (cause instanceof ServletModuleUserExc) { handleUserError(aRequest, aResponse, aResponse.getWriter(), (ServletModuleUserExc) cause); - else + } + else { handleError(aRequest, aResponse, aResponse.getWriter(), cause); + } } - sessionConnectTime = System.currentTimeMillis() - startTime; + long sessionConnectTime = System.currentTimeMillis() - startTime; + logger.debug("EXECTIME (ServletModuleOpenIndy): " + sessionConnectTime + " ms"); } private void handleUserError(HttpServletRequest aRequest, HttpServletResponse aResponse, - PrintWriter out, ServletModuleUserExc anException) { - ((ServletModuleOpenIndy) ServletModuleOpenIndy.getInstance()).handleUserError(aRequest, aResponse, out, anException); + PrintWriter anOutputWriter, ServletModuleUserExc anException) { + getServletModule().handleUserError(aRequest, aResponse, anOutputWriter, anException); } private void handleError(HttpServletRequest aRequest, HttpServletResponse aResponse,PrintWriter out, Throwable anException) { - ((ServletModuleOpenIndy) ServletModuleOpenIndy.getInstance()).handleError(aRequest, aResponse, out, anException); + getServletModule().handleError(aRequest, aResponse, out, anException); } public String getServletInfo(){