pnever 02/04/29 06:21:22
Modified: src/webdav/server/org/apache/slide/webdav/method
CheckoutMethod.java
Log:
Implemented marshalling (parseRequest() method)
Revision Changes Path
1.6 +44 -29
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/CheckoutMethod.java
Index: CheckoutMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/CheckoutMethod.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CheckoutMethod.java 25 Apr 2002 21:12:25 -0000 1.5
+++ CheckoutMethod.java 29 Apr 2002 13:21:22 -0000 1.6
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/CheckoutMethod.java,v
1.5 2002/04/25 21:12:25 jericho Exp $
- * $Revision: 1.5 $
- * $Date: 2002/04/25 21:12:25 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/CheckoutMethod.java,v
1.6 2002/04/29 13:21:22 pnever Exp $
+ * $Revision: 1.6 $
+ * $Date: 2002/04/29 13:21:22 $
*
* ====================================================================
*
@@ -62,7 +62,8 @@
*/
package org.apache.slide.webdav.method;
-import java.io.IOException;
+import java.io.*;
+import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -75,6 +76,7 @@
import org.jdom.JDOMException;
import org.jdom.output.XMLOutputter;
+import org.apache.slide.common.Domain;
import org.apache.slide.common.NamespaceAccessToken;
import org.apache.slide.webdav.WebdavServletConfig;
import org.apache.slide.webdav.WebdavException;
@@ -91,16 +93,13 @@
*/
public class CheckoutMethod extends WebdavMethod implements DeltavConstants {
- /**
- * String constant for <code>no-cache</code>.
- */
- protected static final String NO_CACHE = "no-cache";
-
- /**
- * Resource to be written.
- */
+ /** Resource to be written. */
private String resourcePath;
-
+
+ /** Marshalling variables */
+ private boolean applyToVersion = false;
+ private boolean forkOk = false;
+
/**
* CHECKOUT method constructor.
*
@@ -125,23 +124,39 @@
if (resourcePath == null) {
resourcePath = "/";
}
- try{
- retrieveRequestContent();
- }
- catch (SAXException e){
- resp.setStatus(WebdavStatus.SC_BAD_REQUEST);
- throw new WebdavException(WebdavStatus.SC_BAD_REQUEST);
- }
- catch (IOException e){
- resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
- throw new WebdavException(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
- }
- catch (ParserConfigurationException e){
- resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
- throw new WebdavException(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ if( req.getContentLength() > 0 ) {
+ try{
+ retrieveRequestContent();
+ Element coe = getRequestContent().getRootElement();
+ if( coe == null || !coe.getName().equals(E_CHECKOUT) ) {
+ Domain.warn( "Root element must be "+E_CHECKOUT );
+ resp.setStatus(WebdavStatus.SC_BAD_REQUEST);
+ throw new WebdavException(WebdavStatus.SC_BAD_REQUEST);
+ }
+ Iterator i = coe.getChildren().iterator();
+ while( i.hasNext() ) {
+ Element e = (Element)i.next();
+ if( e.getName().equals(E_APPLY_TO_VERSION) )
+ applyToVersion = true;
+ if( e.getName().equals(E_FORK_OK) )
+ forkOk = true;
+ }
+ }
+ catch (SAXException e){
+ resp.setStatus(WebdavStatus.SC_BAD_REQUEST);
+ throw new WebdavException(WebdavStatus.SC_BAD_REQUEST);
+ }
+ catch (IOException e){
+ resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ throw new WebdavException(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ }
+ catch (ParserConfigurationException e){
+ resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ throw new WebdavException(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ }
}
}
-
+
/**
* Execute the request.
*
@@ -156,7 +171,7 @@
try {
VersioningHelper vh = VersioningHelper.getVersioningHelper(
slideToken, token, req, resp, getConfig() );
- vh.checkout( resourcePath , false, false);
+ vh.checkout( resourcePath, forkOk, applyToVersion );
}
catch (PreconditionViolationException e) {
sendPreconditionViolation(e);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>