juergen 02/04/03 03:57:31
Modified: src/webdav/server/org/apache/slide/webdav/util
VersioningHelper.java
Log:
PreconditionViolationException now also provides the URI of the resource that caused
it.
Added static methods retrieveRevisionDescriptors() and
retrieveLatestRevisionDescriptor() for usage outside of WebdavMethods (where no
servlet request and response is available).
(ralf)
Revision Changes Path
1.16 +79 -33
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/VersioningHelper.java
Index: VersioningHelper.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/VersioningHelper.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- VersioningHelper.java 28 Mar 2002 06:12:13 -0000 1.15
+++ VersioningHelper.java 3 Apr 2002 11:57:31 -0000 1.16
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/VersioningHelper.java,v
1.15 2002/03/28 06:12:13 jericho Exp $
- * $Revision: 1.15 $
- * $Date: 2002/03/28 06:12:13 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/VersioningHelper.java,v
1.16 2002/04/03 11:57:31 juergen Exp $
+ * $Revision: 1.16 $
+ * $Date: 2002/04/03 11:57:31 $
*
* ====================================================================
*
@@ -170,15 +170,7 @@
public NodeRevisionDescriptors
retrieveRevisionDescriptors( String resourcePath ) throws SlideException {
- NodeRevisionDescriptors rNrds = null;
- UriHandler rUh = UriHandler.getUriHandler( nsaToken, resourcePath );
-
- if( rUh.isVersionUri() )
- rNrds = content.retrieve( sToken, rUh.getAssociatedHistoryUri() );
- else
- rNrds = content.retrieve( sToken, resourcePath );
-
- return rNrds;
+ return retrieveRevisionDescriptors(nsaToken, sToken, content, resourcePath);
}
/**
@@ -188,22 +180,7 @@
public NodeRevisionDescriptor
retrieveLatestRevisionDescriptor( String resourcePath, NodeRevisionDescriptors
rNrds ) throws SlideException {
- NodeRevisionDescriptor rNrd = null;
- UriHandler rUh = UriHandler.getUriHandler( nsaToken, resourcePath );
-
- if( rUh.isHistoryUri() ) {
- rNrd = content.retrieve( sToken, rNrds,
- new NodeRevisionNumber(0, 0) );
- }
- else if( rUh.isVersionUri() ) {
- rNrd = content.retrieve( sToken, rNrds,
- new NodeRevisionNumber(rUh.getVersionName()) );
- }
- else {
- rNrd = content.retrieve( sToken, rNrds );
- }
-
- return rNrd;
+ return retrieveLatestRevisionDescriptor(nsaToken, sToken, content,
resourcePath, rNrds);
}
/**
@@ -335,7 +312,7 @@
if( !rRk.isSupportedMethod(req.getMethod()) ) {
// check precondition C_MUST_BE_CHECKED_IN
if( rRk instanceof CheckedOut ) {
- throw new PreconditionViolationException(new
ViolatedPrecondition(C_MUST_BE_CHECKED_IN, WebdavStatus.SC_CONFLICT));
+ throw new PreconditionViolationException(new
ViolatedPrecondition(C_MUST_BE_CHECKED_IN, WebdavStatus.SC_CONFLICT), rNrds.getUri());
}
resp.setStatus(WebdavStatus.SC_BAD_REQUEST);
return;
@@ -354,7 +331,7 @@
ViolatedPrecondition violatedPrecondition =
getCheckoutPreconditionViolation(cinNrds, cinNrd, forkOk);
if (violatedPrecondition != null) {
- throw new PreconditionViolationException(violatedPrecondition);
+ throw new PreconditionViolationException(violatedPrecondition,
rNrds.getUri());
}
NodeRevisionDescriptors vhrNrds = content.retrieve(sToken, cinUri);
@@ -471,7 +448,9 @@
// check precondition C_MUST_BE_CHECKED_OUT_VERSION_CONTROLLED_RESOURCE
if ( ! (rRk instanceof CheckedOutVersionControlled) ) {
- throw new PreconditionViolationException(new
ViolatedPrecondition(C_MUST_BE_CHECKED_OUT_VERSION_CONTROLLED_RESOURCE,
WebdavStatus.SC_CONFLICT));
+ throw new PreconditionViolationException(new
ViolatedPrecondition(C_MUST_BE_CHECKED_OUT_VERSION_CONTROLLED_RESOURCE,
+
WebdavStatus.SC_CONFLICT),
+ rNrds.getUri());
}
if( !rRk.isSupportedMethod(req.getMethod()) ) {
@@ -532,7 +511,9 @@
if( !rRk.isSupportedMethod(req.getMethod()) ) {
// check precondition C_MUST_BE_CHECKED_OUT
if( !(rRk instanceof CheckedOut) ) {
- throw new PreconditionViolationException(new
ViolatedPrecondition(C_MUST_BE_CHECKED_OUT, WebdavStatus.SC_CONFLICT));
+ throw new PreconditionViolationException(new
ViolatedPrecondition(C_MUST_BE_CHECKED_OUT,
+
WebdavStatus.SC_CONFLICT),
+ rNrds.getUri());
}
resp.setStatus(WebdavStatus.SC_BAD_REQUEST);
return;
@@ -557,7 +538,7 @@
ViolatedPrecondition violatedPrecondition =
getCheckinPreconditionViolation(predSetProp, vhrNrds, forkOk);
if (violatedPrecondition != null) {
- throw new PreconditionViolationException(violatedPrecondition);
+ throw new PreconditionViolationException(violatedPrecondition,
rNrds.getUri());
}
// update <checkout-set>
@@ -832,6 +813,71 @@
saxBuilder = new SAXBuilder();
}
return saxBuilder;
+ }
+
+ /**
+ * Retrieve the DeltaV-compliant NRDS instance for the specified resource path.
+ *
+ * @param nsaToken the NamespaceAccessToken to use.
+ * @param sToken the SlideToken to use.
+ * @param content the Content helper to use.
+ * @param resourcePath the path of the resource for which to retrieve
+ * the NRDS.
+ *
+ * @return the DeltaV-compliant NRDS instance for the specified resource
path.
+ */
+ public static NodeRevisionDescriptors
retrieveRevisionDescriptors(NamespaceAccessToken nsaToken,
+ SlideToken
sToken,
+ Content
content,
+ String
resourcePath ) throws SlideException {
+
+ NodeRevisionDescriptors rNrds = null;
+ UriHandler rUh = UriHandler.getUriHandler( nsaToken, resourcePath );
+
+ if( rUh.isVersionUri() )
+ rNrds = content.retrieve( sToken, rUh.getAssociatedHistoryUri() );
+ else
+ rNrds = content.retrieve( sToken, resourcePath );
+
+ return rNrds;
+ }
+
+ /**
+ * Retrieve the latest DeltaV-compliant NRD instance for the specified
+ * resource path and associated to the specified NRDS instance.
+ *
+ * @param nsaToken the NamespaceAccessToken to use.
+ * @param sToken the SlideToken to use.
+ * @param content the Content helper to use.
+ * @param resourcePath the path of the resource for which to retrieve
+ * the NRD.
+ * @param rNrds the NodeRevisionDescriptors of the resource.
+ *
+ * @return the latest DeltaV-compliant NRD instance for the specified
+ * resource path and associated to the specified NRDS instance.
+ */
+ public static NodeRevisionDescriptor
retrieveLatestRevisionDescriptor(NamespaceAccessToken nsaToken,
+
SlideToken sToken,
+ Content
content,
+ String
resourcePath,
+
NodeRevisionDescriptors rNrds) throws SlideException {
+
+ NodeRevisionDescriptor rNrd = null;
+ UriHandler rUh = UriHandler.getUriHandler( nsaToken, resourcePath );
+
+ if( rUh.isHistoryUri() ) {
+ rNrd = content.retrieve( sToken, rNrds,
+ new NodeRevisionNumber(0, 0) );
+ }
+ else if( rUh.isVersionUri() ) {
+ rNrd = content.retrieve( sToken, rNrds,
+ new NodeRevisionNumber(rUh.getVersionName()) );
+ }
+ else {
+ rNrd = content.retrieve( sToken, rNrds );
+ }
+
+ return rNrd;
}
/**
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>