Reserved Checkout
Table of Contents
- Revision Controller
- The ReservedCheckoutAction
- URL
- The ReservedCheckoutTestAction
- FileReservedCheckOutException
- Exception
Revision Controller
To check out a file call the method :
org.apache.lenya.cms.rc.RevisionController.reservedCheckOut(String source, String identity)
where the source is the path of the file from the publication and the identity is the identity of the user.
This method is called from the ReservedCheckoutAction.
The ReservedCheckoutAction
To invoke a reserved check out from a sitemap pipeline, you use The ReservedCheckoutAction.
      <map:components>
        ...
        <map:actions>
      	  <map:action name="reserved-checkout" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckoutAction" logger="sitemap.action.reserved-checkout"/>
        </map:actions>
        ...
      </map:components>
      
      
      
            <map:act type="reserved-checkout">
              <map:generate src="content/rc/{exception}.xsp" type="serverpages">
                <map:parameter name="user" value="{user}"/>
                <map:parameter name="filename" value="{filename}"/>
                <map:parameter name="date" value="{date}"/>
              </map:generate>
              <map:transform src="xslt/rc/rco-exception.xsl"/>
              <map:serialize/>
            </map:act>
      
    
    
	  URL
The call
{document-URL}?lenya.usecase=checkout&lenya usecase.step=checkout
       invokes a check-out of the document
The ReservedCheckoutTestAction
The ReservedCheckoutTestAction checks out a document only if this isn't already checked out
      <map:components>
        ...
        <map:actions>
  	      <map:action name="reserved-checkout-test" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckoutTestAction" logger="sitemap.action.reserved-checkout-test"/>
        </map:actions>
        ...
      </map:components>
      
      
      
	        <map:act type="reserved-checkout-test">
    	      <map:generate type="serverpages" src="../../content/rc/{exception}.xsp">
        	    <map:parameter name="user" value="{user}"/>
            	<map:parameter name="filename" value="{filename}"/>
	            <map:parameter name="date" value="{date}"/>
    	      </map:generate>
        	  <map:transform src="../../xslt/rc/rco-exception.xsl"/>
    	      <map:serialize/>
        	</map:act>
      
    
    
	  FileReservedCheckOutException
When the file cannot be checked out because another user has already checked it out, a fileReservedCheckOutException is thrown:
      File Reserved Checkout Exception
      
      Could not check out the file
      Reason : The resource has already been checked out by another user
      User:	lenya
      Date:	Wed Oct 22 12:02:28 CEST 2003
      Filename:	/content/authoring/index/index_de.xml
	  
	  The serverpage
lenya/src/webapp/lenya/content/rc/fileReservedCheckOutException.xsp
generates the xml which will be transformed with
lenya/src/webapp/lenya/xslt/rc/rco-exception.xsl
Exception
The errors are catched as generic Exception
      Generic Exception
      Check the log files :-)
      Filename:	/content/authoring/malaVida/index_de.xml	  
	  The serverpage
lenya/src/webapp/lenya/content/rc/exception.xsp
generates the xml which will be transformed with
lenya/src/webapp/lenya/xslt/rc/rco-exception.xsl

 
      