luetzkendorf    2004/11/18 08:27:29

  Modified:    src/webdav/server/org/apache/slide/webdav/method/report
                        VersionTreeReport.java
  Log:
  fix for version-tree-report on version history resorces
  (testcase 
DeltaV\functional\Version_history_feature\Version-tree_report\version-tree_report.xml)
  
  Revision  Changes    Path
  1.9       +29 -3     
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/report/VersionTreeReport.java
  
  Index: VersionTreeReport.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/report/VersionTreeReport.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- VersionTreeReport.java    5 Aug 2004 14:43:34 -0000       1.8
  +++ VersionTreeReport.java    18 Nov 2004 16:27:29 -0000      1.9
  @@ -52,6 +52,7 @@
   import org.apache.slide.webdav.util.resourcekind.ResourceKind;
   import org.apache.slide.webdav.util.resourcekind.Version;
   import org.apache.slide.webdav.util.resourcekind.VersionControlled;
  +import org.apache.slide.webdav.util.resourcekind.VersionHistory;
   import org.jdom.Element;
   import org.jdom.JDOMException;
   
  @@ -152,6 +153,31 @@
               nrd = content.retrieve(slideToken, nrds);
               resourceKind =
                   AbstractResourceKind.determineResourceKind(token, nrds, nrd);
  +        }
  +        else if (resourceKind instanceof VersionHistory) {
  +            NodeProperty rootVersion = nrd.getProperty(P_ROOT_VERSION);
  +            if (rootVersion != null) {
  +                XMLValue value;
  +                if (rootVersion.getValue() instanceof XMLValue) {
  +                    value = (XMLValue)rootVersion.getValue();
  +                } else {
  +                    try {
  +                        value = new 
XMLValue(rootVersion.getValue().toString());
  +                    } catch (JDOMException e) {
  +                        throw new SlideException("Could not parse 
DAV:root-version: "+nrds.getUri());
  +                    }
  +                }
  +                Iterator i = value.iterator();
  +                if (i.hasNext()) {
  +                    resourcePath = ((Element)i.next()).getText();
  +                }
  +            }
  +            resourcePath += "/";
  +            resourcePath += nrds.getInitialRevision();
  +            nrds = content.retrieve(slideToken, resourcePath);
  +            nrd = content.retrieve(slideToken, nrds);
  +            resourceKind =
  +                    AbstractResourceKind.determineResourceKind(token, nrds, 
nrd);
           }
           
           if ( Configuration.useVersionControl() && (resourceKind instanceof 
Version) ) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to