[prev in list] [next in list] [prev in thread] [next in thread] 

List:       slide-dev
Subject:    cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method DeleteMethod.java MoveMet
From:       pnever () apache ! org
Date:       2002-10-24 8:30:07
[Download RAW message or body]

pnever      2002/10/24 01:30:06

  Modified:    src/webdav/server/org/apache/slide/webdav/method
                        DeleteMethod.java MoveMethod.java
  Log:
  Minor changes in the handling of a VR's DAV:checkout-set property
  
  Revision  Changes    Path
  1.28      +40 -40    \
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/DeleteMethod.java  
  Index: DeleteMethod.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/DeleteMethod.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- DeleteMethod.java	17 Oct 2002 16:05:05 -0000	1.27
  +++ DeleteMethod.java	24 Oct 2002 08:30:06 -0000	1.28
  @@ -63,38 +63,31 @@
   
   package org.apache.slide.webdav.method;
   
  -import java.security.Principal;
  -import java.io.*;
  -import java.util.*;
  -import javax.servlet.*;
  -import javax.servlet.http.*;
  -import org.apache.util.WebdavStatus;
  -import org.apache.slide.common.*;
  -import org.apache.slide.webdav.*;
  -import org.apache.slide.macro.*;
  -import org.apache.slide.lock.*;
  -import org.apache.slide.content.*;
  -import org.apache.slide.security.AccessDeniedException;
  -import org.apache.slide.security.NodePermission;
  -import org.apache.slide.structure.*;
  +import java.io.IOException;
  +import org.apache.slide.common.NamespaceAccessToken;
  +import org.apache.slide.common.SlideException;
  +import org.apache.slide.content.NodeRevisionDescriptor;
  +import org.apache.slide.content.NodeRevisionDescriptors;
  +import org.apache.slide.content.RevisionDescriptorNotFoundException;
  +import org.apache.slide.macro.DeleteListener;
  +import org.apache.slide.macro.DeleteMacroException;
  +import org.apache.slide.structure.ObjectNotFoundException;
  +import org.apache.slide.util.Configuration;
  +import org.apache.slide.webdav.WebdavException;
  +import org.apache.slide.webdav.WebdavServletConfig;
  +import org.apache.slide.webdav.util.DeltavConstants;
   import org.apache.slide.webdav.util.PreconditionViolationException;
  -import org.apache.slide.webdav.util.ViolatedPrecondition;
  +import org.apache.slide.webdav.util.PropertyHelper;
   import org.apache.slide.webdav.util.UriHandler;
  -import org.apache.slide.webdav.util.DeltavConstants;
  -import org.apache.slide.webdav.util.XMLValue;
   import org.apache.slide.webdav.util.VersioningHelper;
  -import org.apache.slide.webdav.util.PropertyHelper;
  +import org.apache.slide.webdav.util.ViolatedPrecondition;
   import org.apache.slide.webdav.util.resourcekind.AbstractResourceKind;
  -import org.apache.slide.webdav.util.resourcekind.ResourceKind;
   import org.apache.slide.webdav.util.resourcekind.CheckedOutVersionControlled;
  +import org.apache.slide.webdav.util.resourcekind.ResourceKind;
   import org.apache.slide.webdav.util.resourcekind.Working;
  -import org.apache.slide.util.Configuration;
  -
  -import org.jdom.Element;
  +import org.apache.util.WebdavStatus;
   import org.jdom.JDOMException;
   
  -import org.jdom.output.XMLOutputter;
  -
   /**
    * DELETE method.
    *
  @@ -138,7 +131,7 @@
       
       /**
        * Constructor.
  -     * 
  +     *
        * @param token     the token for accessing the namespace
        * @param config    configuration of the WebDAV servlet
        */
  @@ -246,31 +239,38 @@
       public void beforeDelete(String targetUri) throws SlideException {
           
           if(Configuration.useVersionControl()) {
  -        
  +            
               uriHandler = UriHandler.getUriHandler(targetUri);
               if (uriHandler.isVersionUri() && !isCollection) {
                   // delete of version is only allowed if the history collection is \
                deleted
  -            throw new PreconditionViolationException(new \
                ViolatedPrecondition(C_NO_VERSION_DELETE,
  -                                                                              \
                WebdavStatus.SC_FORBIDDEN),
  -                                                     targetUri);
  +                throw new PreconditionViolationException(new \
ViolatedPrecondition(C_NO_VERSION_DELETE,  +                                          \
WebdavStatus.SC_FORBIDDEN),  +                                                        \
targetUri);  }
  -
  -            // if resource being removed is a checked-out VCR or a WR, 
  +            
  +            // if resource being removed is a checked-out VCR or a WR,
               // remove its URI in the DAV:checkout-set property of the VR
               NodeRevisionDescriptors nrds = content.retrieve(slideToken, \
                targetUri);
               NodeRevisionDescriptor nrd = content.retrieve(slideToken, nrds);
               ResourceKind rk = AbstractResourceKind.determineResourceKind(token, \
                nrds, nrd);
               if(rk instanceof CheckedOutVersionControlled || rk instanceof Working) \
                {
  -                String vrUri = 
  +                String vrUri =
                       VersioningHelper.getUriOfAssociatedVR(token, slideToken, \
                content, targetUri);
  -                NodeRevisionDescriptors vrNrds = content.retrieve(slideToken, \
                vrUri);
  -                NodeRevisionDescriptor vrNrd = content.retrieve(slideToken, \
vrNrds);  try {
  +                    NodeRevisionDescriptors vrNrds = content.retrieve(slideToken, \
vrUri);  +                    NodeRevisionDescriptor vrNrd = \
                content.retrieve(slideToken, vrNrds);
                       PropertyHelper.removeHrefFromProperty(vrNrd, P_CHECKOUT_SET, \
                targetUri);
  -                    content.store(slideToken, vrUri, vrNrd, null);
  +                    content.store(slideToken, vrNrds.getUri(), vrNrd, null);
  +                }
  +                catch( ObjectNotFoundException e ) {
  +                    // Nothing to do if the VR is gone, e.g. because the VHR was \
deleted.  +                }
  +                catch( RevisionDescriptorNotFoundException e ) {
  +                    // Nothing to do if the VR is gone, e.g. because the VHR was \
deleted.  }
                   catch (JDOMException e) {
  -                    e.printStackTrace();
  +                    throw new SlideException(
  +                        "Unable to update DAV:checkout-set of "+vrUri+": \
"+e.getMessage() );  }
               }
           }
  @@ -291,6 +291,6 @@
       }
       
       
  -
  +    
   }
   
  
  
  
  1.55      +59 -63    \
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/MoveMethod.java  
  Index: MoveMethod.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/MoveMethod.java,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- MoveMethod.java	17 Oct 2002 16:05:05 -0000	1.54
  +++ MoveMethod.java	24 Oct 2002 08:30:06 -0000	1.55
  @@ -63,53 +63,48 @@
   
   package org.apache.slide.webdav.method;
   
  -import java.security.Principal;
  -import java.io.*;
  -import java.util.*;
  -import javax.servlet.*;
  -import javax.servlet.http.*;
  -import org.apache.util.WebdavStatus;
  -import org.apache.slide.common.SlideTokenWrapper;
  +import java.io.IOException;
  +import java.util.Iterator;
   import org.apache.slide.common.NamespaceAccessToken;
  -import org.apache.slide.common.SlideException;
   import org.apache.slide.common.ServiceAccessException;
  -import org.apache.slide.webdav.*;
  -import org.apache.slide.macro.*;
  -import org.apache.slide.lock.*;
  -import org.apache.slide.content.*;
  +import org.apache.slide.common.SlideException;
  +import org.apache.slide.common.SlideTokenWrapper;
  +import org.apache.slide.content.NodeProperty;
   import org.apache.slide.content.NodeProperty.NamespaceCache;
  +import org.apache.slide.content.NodeRevisionDescriptor;
  +import org.apache.slide.content.NodeRevisionDescriptors;
  +import org.apache.slide.content.NodeRevisionNumber;
  +import org.apache.slide.content.RevisionDescriptorNotFoundException;
  +import org.apache.slide.content.RevisionNotFoundException;
  +import org.apache.slide.macro.CopyListener;
  +import org.apache.slide.macro.DeleteListener;
  +import org.apache.slide.macro.Macro;
  +import org.apache.slide.macro.MacroException;
  +import org.apache.slide.macro.MacroParameters;
  +import org.apache.slide.search.RequestedResource;
  +import org.apache.slide.search.Search;
   import org.apache.slide.search.SearchQuery;
   import org.apache.slide.search.SearchQueryResult;
  -import org.apache.slide.search.Search;
  -import org.apache.slide.search.RequestedResource;
  -import org.apache.slide.search.BadQueryException;
  -import org.apache.slide.security.AccessDeniedException;
  -import org.apache.slide.structure.*;
  -
  +import org.apache.slide.structure.ObjectNotFoundException;
  +import org.apache.slide.util.Configuration;
  +import org.apache.slide.webdav.WebdavException;
  +import org.apache.slide.webdav.WebdavServletConfig;
  +import org.apache.slide.webdav.util.DaslConstants;
  +import org.apache.slide.webdav.util.DeltavConstants;
   import org.apache.slide.webdav.util.PreconditionViolationException;
  -import org.apache.slide.webdav.util.ViolatedPrecondition;
  +import org.apache.slide.webdav.util.PropertyHelper;
   import org.apache.slide.webdav.util.UriHandler;
  -import org.apache.slide.webdav.util.DeltavConstants;
  -import org.apache.slide.webdav.util.XMLValue;
   import org.apache.slide.webdav.util.VersioningHelper;
  -import org.apache.slide.webdav.util.PropertyHelper;
  -import org.apache.slide.webdav.util.DaslConstants;
  -import org.apache.slide.webdav.util.AbstractWebdavHelper;
  -
  +import org.apache.slide.webdav.util.ViolatedPrecondition;
   import org.apache.slide.webdav.util.resourcekind.AbstractResourceKind;
  -import org.apache.slide.webdav.util.resourcekind.ResourceKind;
   import org.apache.slide.webdav.util.resourcekind.CheckedOutVersionControlled;
   import org.apache.slide.webdav.util.resourcekind.DeltavCompliantUnmappedUrl;
  -import org.apache.slide.webdav.util.resourcekind.Working;
  -import org.apache.slide.webdav.util.resourcekind.Workspace;
  +import org.apache.slide.webdav.util.resourcekind.ResourceKind;
   import org.apache.slide.webdav.util.resourcekind.VersionControlled;
  -
  -import org.apache.slide.util.Configuration;
  -
  -import org.jdom.JDOMException;
  +import org.apache.slide.webdav.util.resourcekind.Working;
  +import org.apache.util.WebdavStatus;
   import org.jdom.Element;
  -
  -import org.jdom.output.XMLOutputter;
  +import org.jdom.JDOMException;
   
   /**
    * MOVE Method.
  @@ -158,7 +153,7 @@
       
       /**
        * Constructor.
  -     * 
  +     *
        * @param token     the token for accessing the namespace
        * @param config    configuration of the WebDAV servlet
        */
  @@ -373,24 +368,25 @@
                                                                                      \
                sourceRevisionDescriptors,
                                                                                      \
                sourceRevisionDescriptor);
               isCopySourceVCR = (resourceKind instanceof VersionControlled);
  -
  -            // if resource being moved is a checked-out VCR or a WR, 
  +            
  +            // if resource being moved is a checked-out VCR or a WR,
               // update its URI in the DAV:checkout-set property of the VR
               if(resourceKind instanceof CheckedOutVersionControlled || resourceKind \
                instanceof Working) {
  -                String vrUri = 
  +                String vrUri =
                       VersioningHelper.getUriOfAssociatedVR(token, slideToken, \
                content, sourceUri);
                   NodeRevisionDescriptors vrNrds = content.retrieve(slideToken, \
                vrUri);
                   NodeRevisionDescriptor vrNrd = content.retrieve(slideToken, \
vrNrds);  try {
                       PropertyHelper.removeHrefFromProperty(vrNrd, P_CHECKOUT_SET, \
                sourceUri);
                       PropertyHelper.addHrefToProperty(vrNrd, P_CHECKOUT_SET, \
                destinationUri);
  -                    content.store(slideToken, vrUri, vrNrd, null);
  +                    content.store(slideToken, vrNrds.getUri(), vrNrd, null);
                   }
                   catch (JDOMException e) {
  -                    e.printStackTrace();
  +                    throw new SlideException(
  +                        "Unable to update DAV:checkout-set of "+vrUri+": \
"+e.getMessage() );  }
               }
  -    }
  +        }
       }
       
       /**
  @@ -414,13 +410,13 @@
                   content.retrieve( slideToken, destinationUri);
               NodeRevisionDescriptor destinationNrd =
                   content.retrieve( slideToken, destinationNrds );
  -        
  -        // copy DeltaV-specific "0.0" revision if exists
  -        try {
  +            
  +            // copy DeltaV-specific "0.0" revision if exists
  +            try {
                   NodeRevisionDescriptor sourceNrd00 =
                       content.retrieve( slideToken, sourceNrds, \
                NodeRevisionNumber.HIDDEN_0_0 );
                   NodeRevisionDescriptor destinationNrd00 = \
                sourceNrd00.cloneObject();
  -
  +                
                   try {
                       content.retrieve( slideToken, destinationNrds, \
                NodeRevisionNumber.HIDDEN_0_0 );
                       content.store( slideToken, destinationUri, destinationNrd00, \
null ); // revisionContent=null  @@ -428,17 +424,17 @@
                   catch( RevisionDescriptorNotFoundException x ) {
                       content.create( slideToken, destinationUri, null, \
destinationNrd00, null ); // branch=null, revisionContent=null  }
  -        }
  -        catch (ServiceAccessException e) {
  -            throw e;
  -        }
  -        catch (SlideException e) {}
  -        
  +            }
  +            catch (ServiceAccessException e) {
  +                throw e;
  +            }
  +            catch (SlideException e) {}
  +            
               handleWorkspacePostconditions(destinationNrd, destinationUri);
               handleWorkingResourcePostconditions(sourceUri, destinationUri);
           }
       }
  -
  +    
       /**
        * Handles the working resource postconditions.
        * <ul>
  @@ -563,20 +559,20 @@
        * @throws     SlideException
        */
       protected void handleWorkspacePostconditions(NodeRevisionDescriptor \
                revisionDescriptor, String resourceUri) throws SlideException {
  -
  +        
           if( Configuration.useVersionControl() ) {
               
               if (isRequestSourceWorkspace) {
  -            // DAV:workspace-moved
  +                // DAV:workspace-moved
                   revisionDescriptor.setProperty(
                       new NodeProperty( P_WORKSPACE, \
                propertyHelper.createHrefValue(this.destinationUri)) );
  -        }
  -        else {
  -            // DAV:workspace-member-moved
  +            }
  +            else {
  +                // DAV:workspace-member-moved
                   versioningHelper.setWorkspaceProperty(resourceUri, \
revisionDescriptor);  +            }
  +            content.store(slideToken, resourceUri, revisionDescriptor, null);
           }
  -        content.store(slideToken, resourceUri, revisionDescriptor, null);
  -    }
       }
       
       
  @@ -608,5 +604,5 @@
        */
       public void afterDelete(String targetUri) throws SlideException {
       }
  -    }
  +}
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:slide-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:slide-dev-help@jakarta.apache.org>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic