[prev in list] [next in list] [prev in thread] [next in thread]
List: slide-dev
Subject: cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method OptionsMethod.java
From: juergen () apache ! org
Date: 2002-01-30 13:20:01
[Download RAW message or body]
juergen 02/01/30 05:20:01
Modified: src/webdav/server/org/apache/slide/webdav/method
OptionsMethod.java
Log:
- Added "version-control" to DAV-header
- Added VERSION-CONTROL, REPORT to Allow-Header
- minor restructuring of the executeRequest() method
(Peter)
Revision Changes Path
1.11 +55 -27 \
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java
Index: OptionsMethod.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- OptionsMethod.java 8 Jan 2002 14:31:37 -0000 1.10
+++ OptionsMethod.java 30 Jan 2002 13:20:01 -0000 1.11
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java,v \
1.10 2002/01/08 14:31:37 juergen Exp $
- * $Revision: 1.10 $
- * $Date: 2002/01/08 14:31:37 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/OptionsMethod.java,v \
1.11 2002/01/30 13:20:01 juergen Exp $ + * $Revision: 1.11 $
+ * $Date: 2002/01/30 13:20:01 $
*
* ====================================================================
*
@@ -77,7 +77,7 @@
import org.apache.slide.lock.*;
import org.apache.slide.search.*;
import org.apache.slide.content.*;
-
+import org.apache.slide.util.Configuration;
/**
* OPTIONS Method.
@@ -100,55 +100,83 @@
throws WebdavException {
}
- protected void executeRequest()
- throws WebdavException {
+ protected void executeRequest() throws WebdavException {
+
+ StringBuffer davHeader = new StringBuffer( "1" );
+
+ if( Configuration.useIntegratedLocking() )
+ davHeader.append( ", 2" );
+
+ davHeader.append( ", slide" );
+
+ if( Configuration.useIntegratedSecurity() )
+ davHeader.append( ", access-control" );
+
+ if( Configuration.useVersionControl() )
+ davHeader.append( ", version-control" );
+
+ resp.addHeader( "DAV", davHeader.toString() );
- if( org.apache.slide.util.Configuration.useIntegratedSecurity() )
- resp.addHeader("DAV", "1, 2, slide, access-control");
- else
- resp.addHeader("DAV", "1, 2, slide");
String resourceUri = requestUri;
if (resourceUri == null) {
resourceUri = "/";
}
- String methodsAllowed = null;
+ // prepare for allow-header
+ boolean resourceExists = false;
+ boolean resourceIsCollection = false;
+ SearchLanguage[] languages =
+ token.getSearchHelper().getSupportedLanguages (slideToken);
- SearchLanguage [] languages = null;
-
- Search search = token.getSearchHelper();
-
- languages = search.getSupportedLanguages (slideToken);
try {
NodeRevisionDescriptors revisionDescriptors =
content.retrieve(slideToken, resourceUri);
NodeRevisionDescriptor revisionDescriptor =
content.retrieve(slideToken, revisionDescriptors);
- methodsAllowed = "OPTIONS, GET, HEAD, POST, DELETE, TRACE, "
- + "PROPFIND, PROPPATCH, COPY, MOVE, LOCK, UNLOCK, ACL";
- if (!WebdavUtils.isCollection(revisionDescriptor)) {
- methodsAllowed = methodsAllowed + ", PUT";
- }
+ resourceExists = true;
+ if( WebdavUtils.isCollection(revisionDescriptor) )
+ resourceIsCollection = true;
} catch (SlideException e) {
if (resourceUri.equals("/")) {
- methodsAllowed = "OPTIONS, GET, HEAD, POST, DELETE, TRACE, "
- + "PROPFIND, PROPPATCH, COPY, MOVE, LOCK, UNLOCK, ACL";
+ resourceExists = true;
+ resourceIsCollection = true;
} else {
- methodsAllowed = "OPTIONS, MKCOL, PUT, LOCK";
+ resourceExists = false;
}
}
+ // build allow-header
+ StringBuffer methodsAllowed = new StringBuffer();
+ if( resourceExists ) {
+ methodsAllowed.append( "OPTIONS, GET, HEAD, POST, DELETE, TRACE" );
+ if( !resourceIsCollection )
+ methodsAllowed.append( ", PUT" );
+ methodsAllowed.append( ", PROPFIND, PROPPATCH, COPY, MOVE" );
+ if( Configuration.useIntegratedLocking() )
+ methodsAllowed.append( ", LOCK, UNLOCK" );
+ if( Configuration.useIntegratedSecurity() )
+ methodsAllowed.append( ", ACL" );
+ if( Configuration.useVersionControl() )
+ methodsAllowed.append( ", VERSION-CONTROL, REPORT" );
+ if( languages != null )
+ methodsAllowed.append( ", SEARCH" );
+ }
+ else {
+ methodsAllowed.append( "OPTIONS, MKCOL, PUT" );
+ if( Configuration.useIntegratedLocking() )
+ methodsAllowed.append( ", LOCK" );
if (languages != null)
- methodsAllowed = methodsAllowed + ", SEARCH";
+ methodsAllowed.append( ", SEARCH" );
+ }
- resp.addHeader("Allow", methodsAllowed);
- resp.addHeader("MS-Author-Via", "DAV");
+ resp.addHeader("Allow", methodsAllowed.toString());
if (languages != null)
for (int i = 0; i < languages.length; i++)
resp.addHeader ("DASL", "<" + languages [i].getGrammarUri() + \
">");
+ resp.addHeader("MS-Author-Via", "DAV");
}
}
--
To unsubscribe, e-mail: <mailto:slide-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:slide-dev-help@jakarta.apache.org>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic