cmlenz 02/03/06 06:30:41
Modified: src/webdav/server/org/apache/slide/webdav WebdavServlet.java
Log:
- Add the option to set a template resource that should handle the
generation of HTML index pages
- Removed catch(Throwable) for init-parameter retrieval, what does that
help but hide real problems??
Revision Changes Path
1.34 +52 -35
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.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- WebdavServlet.java 22 Feb 2002 17:13:25 -0000 1.33
+++ WebdavServlet.java 6 Mar 2002 14:30:41 -0000 1.34
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
1.33 2002/02/22 17:13:25 pnever Exp $
- * $Revision: 1.33 $
- * $Date: 2002/02/22 17:13:25 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
1.34 2002/03/06 14:30:41 cmlenz Exp $
+ * $Revision: 1.34 $
+ * $Date: 2002/03/06 14:30:41 $
*
* ====================================================================
*
@@ -110,7 +110,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
* @author Dirk Verbeeck
- * @version $Revision: 1.33 $
+ * @version $Revision: 1.34 $
*/
public class WebdavServlet extends HttpServlet {
@@ -153,6 +153,12 @@
/**
+ * RequestDispatcher to the directory browsing template, if specified.
+ */
+ protected RequestDispatcher directoryBrowsingTemplate;
+
+
+ /**
* Set to true if the servlet is handling the lifecycle of the domain.
*/
protected boolean handleLifecycle = true;
@@ -401,27 +407,26 @@
String domainConfigFile = null;
String value = null;
- try {
- value = getInitParameter("namespace");
- if (value != null)
- namespaceName = value;
- } catch (Throwable t) {
- ;
- }
- try {
- value = getInitParameter("domain");
- if (value != null)
- domainConfigFile = value;
- } catch (Throwable t) {
- ;
- }
- try {
- value = getInitParameter("directory-browsing");
- if (value != null) {
+
+ value = getInitParameter("namespace");
+ if (value != null)
+ namespaceName = value;
+
+ value = getInitParameter("domain");
+ if (value != null)
+ domainConfigFile = value;
+
+ value = getInitParameter("directory-browsing");
+ if (value != null) {
+ if (value.startsWith("/")) {
+ directoryBrowsingTemplate =
+ getServletContext().getRequestDispatcher(value);
+ if (directoryBrowsingTemplate == null) {
+ directoryBrowsing = false;
+ }
+ } else {
directoryBrowsing = new Boolean(value).booleanValue();
}
- } catch (Throwable t) {
- ;
}
try {
@@ -479,18 +484,30 @@
throws ServletException, IOException {
if (directoryBrowsing) {
- Writer writer = resp.getWriter();
- resp.setContentType("text/html");
- try {
- displayDirectoryBrowsing(req, writer);
- } catch (AccessDeniedException e) {
- resp.sendError(WebdavStatus.SC_FORBIDDEN);
- } catch (ObjectNotFoundException e) {
- resp.sendError(WebdavStatus.SC_NOT_FOUND);
- } catch (LinkedObjectNotFoundException e) {
- resp.sendError(WebdavStatus.SC_NOT_FOUND);
- } catch (SlideException e) {
- resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ if (directoryBrowsingTemplate != null) {
+ // attributes used by the tag library
+ req.setAttribute("org.apache.slide.NamespaceName",
+ token.getName());
+ // attributes for general use
+ req.setAttribute("slide_namespace", token.getName());
+ req.setAttribute
+ ("slide_uri", WebdavUtils.getRelativePath
+ (req, (WebdavServletConfig)getServletConfig()));
+ directoryBrowsingTemplate.forward(req, resp);
+ } else {
+ Writer writer = resp.getWriter();
+ resp.setContentType("text/html");
+ try {
+ displayDirectoryBrowsing(req, writer);
+ } catch (AccessDeniedException e) {
+ resp.sendError(WebdavStatus.SC_FORBIDDEN);
+ } catch (ObjectNotFoundException e) {
+ resp.sendError(WebdavStatus.SC_NOT_FOUND);
+ } catch (LinkedObjectNotFoundException e) {
+ resp.sendError(WebdavStatus.SC_NOT_FOUND);
+ } catch (SlideException e) {
+ resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ }
}
} else {
resp.sendError(WebdavStatus.SC_FORBIDDEN);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>