You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by pn...@apache.org on 2002/02/26 12:36:17 UTC
cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method VersionControlMethod.java
pnever 02/02/26 03:36:17
Modified: src/webdav/server/org/apache/slide/webdav/method
VersionControlMethod.java
Log:
Refactoring: substituted DeltavHelper by new VersioningHelper, PropertyHelper and MethodHelper.
Revision Changes Path
1.3 +9 -121 jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/VersionControlMethod.java
Index: VersionControlMethod.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/VersionControlMethod.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- VersionControlMethod.java 22 Feb 2002 17:31:33 -0000 1.2
+++ VersionControlMethod.java 26 Feb 2002 11:36:17 -0000 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/VersionControlMethod.java,v 1.2 2002/02/22 17:31:33 pnever Exp $
- * $Revision: 1.2 $
- * $Date: 2002/02/22 17:31:33 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/VersionControlMethod.java,v 1.3 2002/02/26 11:36:17 pnever Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/02/26 11:36:17 $
*
* ====================================================================
*
@@ -80,7 +80,9 @@
import org.apache.slide.content.NodeRevisionNumber;
import org.apache.slide.webdav.WebdavServletConfig;
import org.apache.slide.webdav.WebdavException;
-import org.apache.slide.webdav.util.DeltavHelper;
+import org.apache.slide.webdav.util.VersioningHelper;
+import org.apache.slide.webdav.util.PropertyHelper;
+import org.apache.slide.webdav.util.MethodHelper;
import org.apache.slide.webdav.util.UriHandler;
import org.apache.slide.webdav.util.DeltavConstants;
import org.apache.util.WebdavStatus;
@@ -134,127 +136,13 @@
*/
protected void executeRequest() throws WebdavException {
- System.out.println("@@@@ VERSION-CONTROL: it works!!");
-
// Prevent dirty reads
slideToken.setForceStoreEnlistment(true);
try {
- UriHandler uh = UriHandler.getUriHandler( token, resourcePath );
- DeltavHelper dvh = DeltavHelper.getDeltavHelper( token );
- Iterator i;
-
- String nrdsPath = resourcePath;
- if( uh.isVersionUri() )
- nrdsPath = uh.getAssociatedHistoryUri();
-
- System.out.println("@@@@ nrdsPath: "+nrdsPath);
-
- NodeRevisionDescriptors vcrNrds = content.retrieve( slideToken, nrdsPath );
- NodeRevisionDescriptor vcrNrd = content.retrieve( slideToken, vcrNrds );
- NodeRevisionContent vcrNrc = content.retrieve( slideToken, vcrNrds, vcrNrd );
- String resourceKind = dvh.determineResourceKind( vcrNrd );
-
- System.out.println("@@@@ resourceKind: "+resourceKind);
-
- if( !dvh.isSupportedMethod(M_VERSION_CONTROL, resourceKind) ) {
- resp.setStatus(WebdavStatus.SC_BAD_REQUEST);
- return;
- }
-
- // Check for resourceKind = K_VERSION_CONTROLLED*
- if( resourceKind == K_VERSION_CONTROLLED ) {
- // nothing to do
- resp.setStatus(WebdavStatus.SC_OK);
- return;
- }
-
- // Set initial VR properties
- NodeRevisionDescriptor vrNrd =
- new NodeRevisionDescriptor(req.getContentLength());
- i = dvh.createInitialProperties(K_VERSION).iterator();
- while( i.hasNext() )
- vrNrd.setProperty( (NodeProperty)i.next() );
-
- // Set initial VHR properties
- NodeRevisionNumber vhrNrn = new NodeRevisionNumber( 0, 0 ); //major=0; minor=0
- Vector vhrLabels = new Vector();
- Hashtable vhrProps = new Hashtable();
- String vhrBranch = NodeRevisionDescriptors.MAIN_BRANCH;
- NodeRevisionDescriptor vhrNrd =
- new NodeRevisionDescriptor( vhrNrn, vhrBranch, vhrLabels, vhrProps );
- i = dvh.createInitialProperties(K_VERSION_HISTORY).iterator();
- while( i.hasNext() )
- vhrNrd.setProperty( (NodeProperty)i.next() );
-
- // Set initial VCR properties (do not overwrite existing!!)
- i = dvh.createInitialProperties(K_VERSION_CONTROLLED).iterator();
- while( i.hasNext() ) {
- NodeProperty p = (NodeProperty)i.next();
- if( !vcrNrd.exists(p.getName()) )
- vcrNrd.setProperty( p );
- }
-
- // Create VHR/VR
- UriHandler vhrUri = UriHandler.createNextHistoryUri( slideToken, token );
- String vhrUriStr = String.valueOf( vhrUri );
- SubjectNode vhrNode = new SubjectNode();
- structure.create( slideToken, vhrNode, String.valueOf(vhrUri) );
- content.create( slideToken, vhrUriStr, true ); //isVersioned=true
- content.create( slideToken, vhrUriStr, vrNrd, vcrNrc );
- NodeRevisionDescriptors vhrNrds =
- content.retrieve( slideToken, vhrUriStr );
- content.create(
- slideToken, vhrUriStr, null, vhrNrd, null ); //branch=null, revisionContent=null
-
- // Create VR node
- NodeRevisionNumber vrVersion = vrNrd.getRevisionNumber();
- SubjectNode vrNode = new SubjectNode();
- UriHandler vrUri =
- UriHandler.createVersionUri( token, vhrUri, String.valueOf(vrVersion) );
- String vrUriStr = String.valueOf( vrUri );
- structure.create( slideToken, vrNode, String.valueOf(vrUri) );
-
- // Set specific properties
- // First VCR ...
- vcrNrd.setProperty(
- new NodeProperty(P_VERSION_HISTORY, dvh.createHrefValue(vhrUriStr)) );
- vcrNrd.setProperty(
- new NodeProperty(P_CHECKED_IN, dvh.createHrefValue(vrUriStr)) );
- // ... then VHR ...
- vhrNrd.setETag( vhrUriStr.hashCode()+"_" ); // P_GETETAG
- vhrNrd.setLastModified( new Date() ); // P_GETLASTMODIFIED
- vhrNrd.setContentLength( 0 ); // P_GETCONTENTLENGTH
- vhrNrd.setName( vhrUri.getHistoryName() ); // P_DISPLAYNAME
- vhrNrd.setProperty(
- new NodeProperty(P_VERSION_SET, dvh.createHrefValue(vrUriStr)) );
- vhrNrd.setProperty(
- new NodeProperty(P_ROOT_VERSION, dvh.createHrefValue(vrUriStr)) );
- // ... and finally VR ...
- /* Content Type --start-- */
- String contentType = req.getContentType();
- if (contentType == null) {
- contentType = getConfig().getServletContext()
- .getMimeType(resourcePath);
- }
- if (contentType == null) {
- contentType = getConfig().getDefaultMimeType();
- }
- vrNrd.setContentType(contentType); // P_GETCONTENTTYPE
- /* Content Type --end-- */
- vrNrd.setName( vrUri.getVersionName() ); // P_DISPLAYNAME
- vrNrd.setContentLanguage( "en" ); // P_GETCONTENTLANGUAGE
- vrNrd.setETag( vrUriStr.hashCode()+"_"+req.getContentLength() ); // P_GETETAG
- vrNrd.setCreationDate( new Date() ); // P_CREATIONDATE
- vrNrd.setProperty(
- new NodeProperty(P_VERSION_HISTORY, dvh.createHrefValue(vhrUriStr)) );
- vrNrd.setProperty(
- new NodeProperty(P_VERSION_NAME, vrUri.getVersionName()) );
-
- // Store changes
- content.store( slideToken, resourcePath, vcrNrd, null ); //revisionContent=null
- content.store( slideToken, vhrUriStr, vhrNrd, null ); //revisionContent=null
- content.store( slideToken, vhrUriStr, vrNrd, null ); //revisionContent=null
+ VersioningHelper vh = VersioningHelper.getVersioningHelper(
+ slideToken, token, req, resp, getConfig() );
+ vh.versionControl( resourcePath );
}
catch (Exception e) {
e.printStackTrace();
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>