You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by ra...@apache.org on 2010/11/22 23:05:28 UTC
svn commit: r1037906 - in /lenya/branches/BRANCH_2_0_X/src/modules/webdav:
sitemap.xmap usecases/webdav/filePropfind.jx usecases/webdav/propfind.jx
Author: rainer
Date: Mon Nov 22 22:05:28 2010
New Revision: 1037906
URL: http://svn.apache.org/viewvc?rev=1037906&view=rev
Log:
More WebDAV fixes:
Return correct MIME Type and file extension for opendocument.
Reduce number of 500 Internal server errors.
Modified:
lenya/branches/BRANCH_2_0_X/src/modules/webdav/sitemap.xmap
lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/filePropfind.jx
lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/propfind.jx
Modified: lenya/branches/BRANCH_2_0_X/src/modules/webdav/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/webdav/sitemap.xmap?rev=1037906&r1=1037905&r2=1037906&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/webdav/sitemap.xmap (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/webdav/sitemap.xmap Mon Nov 22 22:05:28 2010
@@ -76,7 +76,7 @@
<map:transform type="xslt" src="fallback://lenya/modules/webdav/xslt/NSclean.xsl"/>
<map:select type="request-method">
<map:when test="PROPFIND">
- <map:transform src="cocoon:/limitResponse.xsl" />
+<!-- <map:transform src="cocoon:/limitResponse.xsl" />-->
<map:serialize type="xml" status-code="207"/>
</map:when>
<map:otherwise>
@@ -173,15 +173,17 @@
</map:match>
<map:match pattern="PROPFIND/**.*">
+<!--
<map:match pattern="PROPFIND/**_*.html">
- <map:act type="resource-exists" src="context://lenya/pubs/{page-envelope:publication-id}/content/authoring/{1}/index_{page-envelope:document-language}.xml">
+ <map:act type="resource-exists" src="site://{page-envelope:publication-id}/authoring/{2}/{1}">
<map:call function="filePropfind" >
<map:parameter name="last-modified" value="{page-envelope:document-lastmodified}"/>
</map:call>
</map:act>
</map:match>
+-->
<map:match pattern="PROPFIND/**_*.*">
- <map:act type="resource-exists" src="context://lenya/pubs/{page-envelope:publication-id}/content/authoring/{1}/index_{page-envelope:document-language}.{3}">
+ <map:act type="resource-exists" src="site://{page-envelope:publication-id}/authoring/{2}/{1}">
<map:call function="filePropfind" >
<map:parameter name="last-modified" value="{page-envelope:document-lastmodified}"/>
</map:call>
@@ -189,7 +191,10 @@
</map:match>
<!-- does not exist -->
<map:generate src="context://lenya/content/util/empty.xml"/>
- <map:serialize status-code="404"/>
+ <map:transform src="fallback://lenya/xslt/exception/generic.xsl"/>
+ <map:transform src="fallback://lenya/xslt/util/page2xhtml.xsl"/>
+ <map:transform src="fallback://lenya/xslt/util/strip_namespaces.xsl"/>
+ <map:serialize type="xhtml" status-code="404"/>
</map:match>
<map:match pattern="PROPFIND/**">
@@ -275,18 +280,21 @@
<map:match pattern="LOCK/**">
<map:select type="resource-exists">
- <map:parameter name="prefix" value="lenya://"/>
- <map:when test="lenya/pubs/{page-envelope:publication-id}/content/authoring/{page-envelope:document-path}">
+ <map:parameter name="prefix" value="site://"/>
+ <map:when test="{page-envelope:publication-id}/authoring/{page-envelope:document-language}{page-envelope:document-path}">
<map:act type="reserved-checkout">
<map:generate src="context://lenya/content/util/empty.xml"/>
<map:serialize type="xml" status-code="423"/>
</map:act>
+ <map:act type="set-header">
+ <map:parameter name="Lock-Token" value="{page-envelope:document-uuid}"/>
<map:generate type="file" src="cocoon:/request/generate"/>
<map:transform type="xslt" src="fallback://lenya/modules/webdav/xslt/lock.xsl">
<map:parameter name="userid" value="{access-control:user-id}"/>
<map:parameter name="docid" value="{page-envelope:document-uuid}"/>
</map:transform>
<map:serialize type="xml" status-code="200" />
+ </map:act>
</map:when>
<map:otherwise>
<map:generate src="context://lenya/content/util/empty.xml"/>
Modified: lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/filePropfind.jx
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/filePropfind.jx?rev=1037906&r1=1037905&r2=1037906&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/filePropfind.jx (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/filePropfind.jx Mon Nov 22 22:05:28 2010
@@ -6,11 +6,16 @@
<jx:set var="checkedOut" value="${usecase.getParameter('rc')}"/>
<jx:forEach var="doc" items="${usecase.getParameter('documents')}"
varStatus="status">
- <jx:if test="${doc.getId()}">
+ <jx:if test="${doc.getIdentifier()}">
<jx:set var="fileExtension" value="${doc.getSourceExtension()}"/>
+ <jx:set var="resourceType" value="${doc.getResourceType().getName()}"/>
+ <jx:set var="mimeType" value="${doc.getMimeType()}"/>
<jx:if test="${doc.getSourceExtension().equals('xml')}">
<jx:set var="fileExtension" value="html"/>
</jx:if>
+ <jx:if test="${doc.getResourceType().getName().equals('opendocument')}">
+ <jx:set var="fileExtension" value="odt"/>
+ </jx:if>
<D:response>
<D:href>${request.getContextPath()}/${doc.getPublication().getId()}/webdav${doc.getPath()}_${doc.getLanguage()}.${fileExtension}</D:href>
<D:propstat>
@@ -18,7 +23,7 @@
<D:displayname>${doc.getName()}_${doc.getLanguage()}.${fileExtension}</D:displayname>
<D:getlastmodified>${dateFormat.format(doc.getLastModified())}</D:getlastmodified>
<D:creationdate/>
- <D:getcontenttype>application/xml</D:getcontenttype>
+ <D:getcontenttype>${mimeType}</D:getcontenttype>
<D:getcontentlength>${doc.getFile().length()}</D:getcontentlength>
<D:resourcetype/>
<D:lockdiscovery>
Modified: lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/propfind.jx
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/propfind.jx?rev=1037906&r1=1037905&r2=1037906&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/propfind.jx (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/webdav/usecases/webdav/propfind.jx Mon Nov 22 22:05:28 2010
@@ -56,9 +56,14 @@
varStatus="status">
<jx:if test="${doc.getIdentifier()}">
<jx:set var="fileExtension" value="${doc.getSourceExtension()}"/>
+ <jx:set var="resourceType" value="${doc.getResourceType().getName()}"/>
+ <jx:set var="mimeType" value="${doc.getMimeType()}"/>
<jx:if test="${doc.getSourceExtension().equals('xml')}">
<jx:set var="fileExtension" value="html"/>
</jx:if>
+ <jx:if test="${doc.getResourceType().getName().equals('opendocument')}">
+ <jx:set var="fileExtension" value="odt"/>
+ </jx:if>
<!-- create a file for each document, the href is the path to the file and the
display name is what will appear in the webdav folder -->
<D:response>
@@ -68,7 +73,7 @@
<D:displayname>${doc.getName()}_${doc.getLanguage()}.${fileExtension}</D:displayname>
<D:getlastmodified>${dateFormat.format(doc.getLastModified())}</D:getlastmodified>
<D:creationdate/>
- <D:getcontenttype>application/xml</D:getcontenttype>
+ <D:getcontenttype>${mimeType}</D:getcontenttype>
<D:getcontentlength>${doc.getFile().length()}</D:getcontentlength>
<D:resourcetype/>
<D:lockdiscovery>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org