apache > lenya
 

Reserved Checkout

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