remm 01/10/10 22:52:15
Modified: src/webdav/server/org/apache/slide/webdav WebdavServlet.java
src/webdav/server/org/apache/slide/webdav/method
WebdavMethod.java
Log:
- Few actual changes.
- Code cleanup.
- Log to the token instead of the Domain.
- Fix lifecycle problems when used in the standalone server, where the servlet
would attempt to shutdown the domain. Now, it won't attempt to if it didn't
initialize it.
Revision Changes Path
1.29 +63 -50
jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- WebdavServlet.java 2001/09/13 08:14:07 1.28
+++ WebdavServlet.java 2001/10/11 05:52:15 1.29
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
1.28 2001/09/13 08:14:07 juergen Exp $
- * $Revision: 1.28 $
- * $Date: 2001/09/13 08:14:07 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
1.29 2001/10/11 05:52:15 remm Exp $
+ * $Revision: 1.29 $
+ * $Date: 2001/10/11 05:52:15 $
*
* ====================================================================
*
@@ -109,7 +109,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
* @author Dirk Verbeeck
- * @version $Revision: 1.28 $
+ * @version $Revision: 1.29 $
*/
public class WebdavServlet extends HttpServlet {
@@ -151,6 +151,12 @@
protected boolean directoryBrowsing = true;
+ /**
+ * Set to true if the servlet is handling the lifecycle of the domain.
+ */
+ protected boolean handleLifecycle = true;
+
+
// ------------------------------------------------------ Protected Methods
@@ -219,19 +225,6 @@
{
long startTime = System.currentTimeMillis();
- // if logging for the request/response is required initialise the
- // facades
- if (Domain.isEnabled
- ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
- Logger.DEBUG)) {
- if ( req != null ) req = new XHttpServletRequestFacade(req);
- if ( resp != null ) resp = new XHttpServletResponseFacade(resp);
- } else {
- if ( resp != null ) resp = new
XHttpServletResponseSimpleFacade(resp);
- }
-
- resp.setStatus(WebdavStatus.SC_OK);
-
if (token == null) {
String namespaceName = req.getContextPath();
if ((namespaceName == null) || (namespaceName.equals("")))
@@ -242,6 +235,22 @@
(new SecurityToken(this), namespaceName);
}
+ // if logging for the request/response is required initialise the
+ // facades
+ if (token.getLogger().isEnabled
+ ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
+ Logger.DEBUG)) {
+ if (req != null)
+ req = new XHttpServletRequestFacade(req);
+ if (resp != null)
+ resp = new XHttpServletResponseFacade(resp);
+ } else {
+ if (resp != null)
+ resp = new XHttpServletResponseSimpleFacade(resp);
+ }
+
+ resp.setStatus(WebdavStatus.SC_OK);
+
String methodName = req.getMethod();
WebdavServletConfig config =
(WebdavServletConfig)getServletConfig();
@@ -257,51 +266,51 @@
method.run();
}
-
- // if logging for the request/response is required perform the logging
- if (Domain.isEnabled
- ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
- Logger.DEBUG)) {
+ // if logging for the request/response is required
+ // perform the logging
+ if (token.getLogger().isEnabled
+ ("org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
+ Logger.DEBUG)) {
XMLTestCaseGenerator xmlGen = new XMLTestCaseGenerator
((XHttpServletRequestFacade)req,
- (XHttpServletResponseFacade)resp);
+ (XHttpServletResponseFacade)resp);
xmlGen.setThreadName(Thread.currentThread().getName());
- Domain.log
+ token.getLogger().log
(xmlGen.toString(),
"org.apache.slide.webdav.WebdavServlet.requestResponseLogger",
Logger.DEBUG);
}
- Domain.info
+ token.getLogger().log
(req.getMethod()
- + ( (resp instanceof XHttpServletResponseFacade)
- ? (" = " + ((XHttpServletResponseFacade)resp)
- .getStatus()
- + " " + (WebdavStatus.getStatusText
- (((XHttpServletResponseFacade)resp)
- .getStatus())))
- : (" = " + ((XHttpServletResponseSimpleFacade)resp)
- .getStatus()
- + " " + (WebdavStatus.getStatusText
-
(((XHttpServletResponseSimpleFacade)resp)
- .getStatus()))) )
- + " (time: " + (System.currentTimeMillis() - startTime)
- + " ms)"
- + " URI = " + WebdavUtils.getRelativePath(
- req, (WebdavServletConfig)getServletConfig()));
+ + ( (resp instanceof XHttpServletResponseFacade)
+ ? (" = " + ((XHttpServletResponseFacade)resp)
+ .getStatus()
+ + " " + (WebdavStatus.getStatusText
+ (((XHttpServletResponseFacade)resp)
+ .getStatus())))
+ : (" = " + ((XHttpServletResponseSimpleFacade)resp)
+ .getStatus()
+ + " " + (WebdavStatus.getStatusText
+ (((XHttpServletResponseSimpleFacade)resp)
+ .getStatus()))) )
+ + " (time: " + (System.currentTimeMillis() - startTime)
+ + " ms)"
+ + " URI = "
+ + WebdavUtils.getRelativePath
+ (req, (WebdavServletConfig)getServletConfig()),
+ LOG_CHANNEL, Logger.INFO);
-// Domain.info("ResponseCode:" +
((XHttpServletResponseSimpleFacade)resp).getStatus() +
-// ": " +
((XHttpServletResponseSimpleFacade)resp).getMessage());
- }
- catch (WebdavException e) {
+ } catch (WebdavException e) {
// There has been an error somewhere ...
resp.sendError(e.getStatusCode());
- Domain.log(e,LOG_CHANNEL, Logger.ERROR);
+ token.getLogger().log(e,LOG_CHANNEL, Logger.ERROR);
} catch (Throwable e) {
// If something goes really wrong ...
resp.sendError(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
- Domain.log(e,LOG_CHANNEL, Logger.ERROR);
+ token.getLogger().log(e,LOG_CHANNEL, Logger.ERROR);
}
+
}
@@ -309,13 +318,13 @@
* Implemented to wrap the ServletConfig object inside a
* WebdavServletConfig
*/
- public void init(
- ServletConfig config)
+ public void init(ServletConfig config)
throws ServletException {
super.init(new WebdavServletConfig(config));
// all the actual initialization is inside init()
+
}
@@ -351,8 +360,10 @@
// Lookup for the NAT using the servlet context
token = (NamespaceAccessToken)
getServletContext().getAttribute(ATTRIBUTE_NAME);
- if (token != null)
+ if (token != null) {
+ handleLifecycle = false;
return;
+ }
// Dafault initialization
@@ -414,6 +425,7 @@
t.printStackTrace();
throw new ServletException(t.toString());
}
+
}
@@ -421,7 +433,8 @@
* Destroy servlet.
*/
public void destroy() {
- Domain.closeNamespace(token);
+ if (handleLifecycle)
+ Domain.closeNamespace(token);
}
1.37 +6 -6
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java
Index: WebdavMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- WebdavMethod.java 2001/09/04 12:04:25 1.36
+++ WebdavMethod.java 2001/10/11 05:52:15 1.37
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java,v
1.36 2001/09/04 12:04:25 juergen Exp $
- * $Revision: 1.36 $
- * $Date: 2001/09/04 12:04:25 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java,v
1.37 2001/10/11 05:52:15 remm Exp $
+ * $Revision: 1.37 $
+ * $Date: 2001/10/11 05:52:15 $
*
* ====================================================================
*
@@ -318,7 +318,7 @@
// Ignore the WebDav Exception and assume that the response code
// is already set.
} catch (Exception ex) {
- Domain.log(ex,LOG_CHANNEL,Logger.ERROR);
+ token.getLogger().log(ex,LOG_CHANNEL,Logger.ERROR);
resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
throw new WebdavException(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
} finally {
@@ -369,7 +369,7 @@
getEncodingString(req.getCharacterEncoding()));
}
catch (Exception e) {
- Domain.log(e,LOG_CHANNEL,Logger.ERROR);
+ token.getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
}
}
@@ -436,7 +436,7 @@
result = lockTokenValue.substring(semi + 1,
lockTokenValue.length() - 1);
} catch (Exception e) {
- Domain.log(e,LOG_CHANNEL,Logger.ERROR);
+ token.getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
}
return result;
}