import javax.servlet.http.HttpSession;
import mir.servlet.AbstractServlet;
-import mir.servlet.ServletModuleDispatch;
import mir.servlet.ServletModuleUserExc;
-import mir.util.ExceptionFunctions;
+import mir.util.ExceptionRoutines;
import mircoders.servlet.ServletModuleOpenIndy;
/**
* 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.5 2005/07/27 11:46:14 grok Exp $
+ * @version $Id: OpenMir.java,v 1.35.2.7 2005/10/01 18:40:40 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("")) {
+ private ServletModuleOpenIndy servletModule;
+
+ 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();
- long sessionConnectTime=0;
HttpSession session = aRequest.getSession();
// call appropriate ServletModuleOpenIndy method
// as specified in http request
// example: OpenMir?do=opensession calls the opensession method
- ServletModuleDispatch.dispatch(ServletModuleOpenIndy.getInstance(), aRequest, aResponse);
+
+ getServletModule().handleRequest(aRequest, aResponse);
}
catch (Throwable e) {
logger.warn("Error in open publishing", e);
- Throwable cause = ExceptionFunctions.traceCauseException(e);
+ Throwable cause = ExceptionRoutines.traceCauseException(e);
- if (cause instanceof ServletModuleUserExc)
+ 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(){