luetzkendorf 2005/02/02 03:32:40
Modified: src/webdav/server/org/apache/slide/webdav/method
MkcolMethod.java PutMethod.java
Log:
MKCOL and PUT (201 Created) create properties with default values
(experimental).
MICROSOFT Properties should be configured (removed)
Revision Changes Path
1.41 +17 -46
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/MkcolMethod.java
Index: MkcolMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/MkcolMethod.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- MkcolMethod.java 26 Oct 2004 10:22:05 -0000 1.40
+++ MkcolMethod.java 2 Feb 2005 11:32:40 -0000 1.41
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.util.Date;
+import java.util.List;
import org.apache.slide.common.NamespaceAccessToken;
import org.apache.slide.common.ServiceAccessException;
@@ -41,9 +42,11 @@
import org.apache.slide.webdav.WebdavServletConfig;
import org.apache.slide.webdav.event.WebdavEvent;
import org.apache.slide.webdav.util.DeltavConstants;
+import org.apache.slide.webdav.util.PropertyHelper;
import org.apache.slide.webdav.util.UriHandler;
import org.apache.slide.webdav.util.VersioningHelper;
import org.apache.slide.webdav.util.WebdavStatus;
+import org.apache.slide.webdav.util.resourcekind.ResourceKindManager;
/**
* MKCOL method.
@@ -62,6 +65,7 @@
*/
protected String colName;
+ protected PropertyHelper propertyHelper = null;
/**
* Constructor.
@@ -94,6 +98,9 @@
protected void parseRequest()
throws WebdavException {
+ propertyHelper = PropertyHelper.getPropertyHelper(slideToken, token,
+ getConfig());
+
if (req.getContentLength() > 0) {
int statusCode = WebdavStatus.SC_UNSUPPORTED_MEDIA_TYPE;
sendError( statusCode,
getClass().getName()+".requestBodyMustBeEmpty" );
@@ -159,9 +166,6 @@
// Content length name
revisionDescriptor.setContentLength(0);
- // Source
- revisionDescriptor.setSource("");
-
// Owner
try {
String creator =
((SubjectNode)security.getPrincipal(slideToken)).getPath().lastSegment();
@@ -183,47 +187,14 @@
}
// Added for DeltaV --end--
- if (isMsProprietarySupport()) {
-
- NodeProperty property = null;
-
- // Name
- /*
- property = new NodeProperty("name", colName, "ms", "MICROSOFT");
- properties.setProperty(property);
- */
-
- // ParentName
- // TODO : Fix this
- /*
- property = new NodeProperty("parentname", colName, "ms",
- "MICROSOFT");
- properties.setProperty(property);
- */
-
- // Href
- /*
- property = new NodeProperty("href", colName, "ms", "MICROSOFT");
- properties.setProperty(property);
- */
-
- // Is hidden
- property = new NodeProperty("ishidden", "0", "MICROSOFT");
+ // create default property values of the new collection
+ List defaultValues = propertyHelper.createInitialProperties(
+ ResourceKindManager.determineResourceKind(
+ this.token, colName, revisionDescriptor),
+ colName);
+ for(int i = 0, l = defaultValues.size(); i < l; i++) {
+ NodeProperty property = (NodeProperty)defaultValues.get(i);
revisionDescriptor.setProperty(property);
-
- // Is collection
- property = new NodeProperty("iscollection", "1", "MICROSOFT");
- revisionDescriptor.setProperty(property);
-
- // Is read only
- property = new NodeProperty("isreadonly", "0", "MICROSOFT");
- revisionDescriptor.setProperty(property);
-
- // Last accessed
- property = new NodeProperty("lastaccessed",
- (new Date()).toString(),
"MICROSOFT");
- revisionDescriptor.setProperty(property);
-
}
// If everything is ok : 201 - Created / OK
1.91 +17 -39
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PutMethod.java
Index: PutMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PutMethod.java,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- PutMethod.java 26 Jan 2005 13:35:55 -0000 1.90
+++ PutMethod.java 2 Feb 2005 11:32:40 -0000 1.91
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.util.Date;
+import java.util.List;
import javax.servlet.http.HttpServletResponse;
@@ -58,6 +59,7 @@
import org.apache.slide.webdav.util.resourcekind.AbstractResourceKind;
import org.apache.slide.webdav.util.resourcekind.CheckedInVersionControlled;
import org.apache.slide.webdav.util.resourcekind.ResourceKind;
+import org.apache.slide.webdav.util.resourcekind.ResourceKindManager;
/**
* PUT method.
@@ -74,6 +76,7 @@
* The VersioningHelper used by this instance.
*/
protected VersioningHelper versioningHelper = null;
+ protected PropertyHelper propertyHelper = null;
/**
* Resource to be written.
@@ -118,10 +121,9 @@
protected void parseRequest()
throws WebdavException {
versioningHelper = VersioningHelper.getVersioningHelper(slideToken,
- token,
- req,
- resp,
- config);
+ token, req, resp, config);
+ propertyHelper = PropertyHelper.getPropertyHelper(slideToken, token,
+ getConfig());
resourcePath = requestUri;
if (resourcePath == null) {
@@ -339,19 +341,9 @@
throw new WebdavException( statusCode );
}
- //NodeProperty property = null;
-
- // Creation date
-
// Resource type
revisionDescriptor.setResourceType("");
- // Source
- revisionDescriptor.setSource("");
-
- // Get content language
- revisionDescriptor.setContentLanguage("en");
-
// Get content type
String contentType = req.getContentType();
if (contentType == null) {
@@ -365,7 +357,7 @@
// Last modification date
revisionDescriptor.setLastModified(new Date());
-
+
// Etag generation
revisionDescriptor.setETag(PropertyHelper.computeEtag(resourcePath,
revisionDescriptor));
@@ -384,28 +376,14 @@
}
// Added for DeltaV --end--
- if (isMsProprietarySupport()) {
- NodeProperty property = null;
- // Is hidden
- property = new NodeProperty("ishidden", "0",
"MICROSOFT");
+ // create default property values of the new resource
+ List defaultValues = propertyHelper.createInitialProperties(
+ ResourceKindManager.determineResourceKind(
+ this.token, resourcePath,
revisionDescriptor),
+ resourcePath);
+ for(int i = 0, l = defaultValues.size(); i < l; i++) {
+ NodeProperty property =
(NodeProperty)defaultValues.get(i);
revisionDescriptor.setProperty(property);
-
- // Is collection
- property = new NodeProperty("iscollection", "0",
- "MICROSOFT");
- revisionDescriptor.setProperty(property);
-
- // Is read only
- property = new NodeProperty("isreadonly", "0",
- "MICROSOFT");
- revisionDescriptor.setProperty(property);
-
- // Last accessed
- property = new NodeProperty("lastaccessed",
- (new Date()).toString(),
- "MICROSOFT");
- revisionDescriptor.setProperty(property);
-
}
// Creating revisionDescriptor associated with the object
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]