You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by un...@apache.org on 2003/10/30 18:08:35 UTC

cvs commit: cocoon-2.1/src/blocks/webdav/samples/davmap sitemap.xmap webdav.js

unico       2003/10/30 09:08:35

  Modified:    src/blocks/webdav/samples/davmap sitemap.xmap webdav.js
  Log:
  simple implementation of WebDAV COPY and MOVE methods, provisional support for PROPPATCH
  
  Revision  Changes    Path
  1.7       +51 -10    cocoon-2.1/src/blocks/webdav/samples/davmap/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/webdav/samples/davmap/sitemap.xmap,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- sitemap.xmap	30 Oct 2003 14:49:31 -0000	1.6
  +++ sitemap.xmap	30 Oct 2003 17:08:34 -0000	1.7
  @@ -14,12 +14,31 @@
         />
         <map:generator name="jx" 
           src="org.apache.cocoon.generation.JXTemplateGenerator" 
  -        logger="sitemap.generator.jx" 
  +        logger="generator.jx" 
           label="content" 
           pool-min="2" pool-grow="2" pool-max="16" 
         />
       </map:generators>
  -
  +    
  +    <map:transformers default="xslt">
  +      <map:transformer 
  +        name="spw" 
  +        src="org.apache.cocoon.transformation.SourcePropsWritingTransformer" 
  +        logger="transformer.spw" 
  +        pool-min="2" pool-grow="2" pool-max="16" 
  +      />
  +    </map:transformers>
  +    
  +    <!-- You'll need event caching if you want to PROPPATCH
  +    <map:pipes default="caching">
  +      <map:pipe name="event-caching" 
  +        src="org.apache.cocoon.components.pipeline.impl.CachingProcessingPipeline"
  +      >
  +        <parameter name="cache-role" value="org.apache.cocoon.caching.Cache/EventAware"/>
  +      </map:pipe>
  +    </map:pipes>
  +    -->
  +    
     </map:components>
   
   <!-- ========================== Flowscript ================================= -->
  @@ -80,9 +99,19 @@
       </map:pipeline>
       
   <!-- ========================= Public Resources =========================== -->
  -
  +    
  +    <!--map:pipeline type="event-caching"-->
  +    
       <map:pipeline type="caching">
         
  +      <map:match pattern="test">
  +        <map:generate src="proppatch.xml" />
  +        <map:transform src="styles/proppatch2propwrite.xsl">
  +          <map:parameter name="location" value="test" />
  +        </map:transform>
  +        <map:serialize type="xml" />
  +      </map:match>
  +      
         <map:match pattern="repo">
           <map:call function="selectMethod">
             <map:parameter name="page" value=""/>
  @@ -110,7 +139,7 @@
         
         <map:match pattern="PROPFIND/**">
           <map:generate type="traverse" src="{global:staging}{1}">
  -          <map:parameter name="depth" value="{request-header:depth}" />
  +          <map:parameter name="depth" value="{request-header:Depth}" />
           </map:generate>
           <map:transform src="styles/collection2propfind.xsl">
             <map:parameter name="requestURI" value="{request:requestURI}" />
  @@ -171,17 +200,29 @@
         </map:match>
         
         <map:match pattern="COPY/**">
  -        <map:generate src="dummy.xml"/>
  -        <map:serialize type="xml"/>
  +        <map:call function="copy">
  +          <map:parameter name="from" value="{global:staging}{1}" />
  +          <map:parameter name="to"   value="{request-header:Destination}" />
  +        </map:call>
         </map:match>
  +      
         <map:match pattern="MOVE/**">
  -        <map:generate src="dummy.xml"/>
  -        <map:serialize type="xml"/>
  +        <map:call function="move">
  +          <map:parameter name="from" value="{global:staging}{1}" />
  +          <map:parameter name="to"   value="{request-header:Destination}" />
  +        </map:call>
         </map:match>
  +      
         <map:match pattern="PROPPATCH/**">
  -        <map:generate src="dummy.xml"/>
  -        <map:serialize type="xml"/>
  +        <map:generate type="stream" />
  +        <map:transform src="styles/proppatch2propwrite.xsl" />
  +        <map:transform type="spw" />
  +        <!--
  +        <map:transform src="styles/propwrite2proppatch.xsl" />
  +        -->
  +        <map:serialize type="xml" />
         </map:match>
  +      
         <map:match pattern="LOCK/**">
           <map:generate src="dummy.xml"/>
           <map:serialize type="xml"/>
  
  
  
  1.3       +24 -2     cocoon-2.1/src/blocks/webdav/samples/davmap/webdav.js
  
  Index: webdav.js
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/webdav/samples/davmap/webdav.js,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- webdav.js	30 Oct 2003 14:39:39 -0000	1.2
  +++ webdav.js	30 Oct 2003 17:08:34 -0000	1.3
  @@ -1,6 +1,7 @@
   
  -importPackage(Packages.org.apache.cocoon.components.repository);
  -var repository = cocoon.getComponent(SourceRepository.ROLE);
  +//importPackage(Packages.org.apache.cocoon.components.repository);
  +//var repository = cocoon.getComponent(SourceRepository.ROLE);
  +var repository = cocoon.getComponent("org.apache.cocoon.components.repository.SourceRepository");
   
   function selectMethod() {
     var page = cocoon.parameters["page"];
  @@ -51,3 +52,24 @@
     }
   }
   
  +function copy() {
  +  var from = cocoon.parameters["from"];
  +  var to   = cocoon.parameters["to"];
  +  try {
  +    var status = repository.copy(from,to);
  +    cocoon.sendPage("status/" + status, {message:""});
  +  } catch (e) {
  +    cocoon.log.error("status/500",{message:""});
  +  }
  +}
  +
  +function move() {
  +  var from = cocoon.parameters["from"];
  +  var to   = cocoon.parameters["to"];
  +  try {
  +    var status = repository.move(from,to);
  +    cocoon.sendPage("status/" + status, {message:""});
  +  } catch (e) {
  +    cocoon.log.error("status/500",{message:""});
  +  }
  +}