ozeigermann 2004/10/19 23:30:40
Modified: proposals/wck/src/org/apache/slide/simple/store
WebdavStoreMacroDeleteExtension.java
WebdavStoreBulkPropertyExtension.java
WebdavStoreMacroAdapter.java
WebdavStoreSinglePropertyExtension.java
WebdavStoreMacroCopyExtension.java
WebdavStoreAdapter.java
WebdavStoreMacroMoveExtension.java
BasicWebdavStore.java
Log:
Added ObjectLockedException
to store interfaces to signal internal locking
Revision Changes Path
1.2 +11 -6
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroDeleteExtension.java
Index: WebdavStoreMacroDeleteExtension.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroDeleteExtension.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebdavStoreMacroDeleteExtension.java 19 Oct 2004 12:55:06 -0000 1.1
+++ WebdavStoreMacroDeleteExtension.java 20 Oct 2004 06:30:40 -0000 1.2
@@ -24,6 +24,7 @@
package org.apache.slide.simple.store;
import org.apache.slide.common.ServiceAccessException;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.structure.ObjectNotFoundException;
@@ -57,12 +58,16 @@
*
* @param targetUri
* Uri of the object to delete
- * @throws ObjectNotFoundException if the object to delete was not found
+ * @throws ObjectNotFoundException
+ * if the object to delete was not found
* @throws ServiceAccessException
* if anything else goes wrong while deleting the object
* @throws AccessDeniedException
* if the store denies deleting this object or any descendants
+ * @throws ObjectLockedException
+ * if the object has been locked internally
*/
- public void macroDelete(String targetUri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException;
+ public void macroDelete(String targetUri) throws ServiceAccessException,
AccessDeniedException,
+ ObjectNotFoundException, ObjectLockedException;
}
1.2 +11 -6
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreBulkPropertyExtension.java
Index: WebdavStoreBulkPropertyExtension.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreBulkPropertyExtension.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebdavStoreBulkPropertyExtension.java 12 Oct 2004 20:19:02 -0000 1.1
+++ WebdavStoreBulkPropertyExtension.java 20 Oct 2004 06:30:40 -0000 1.2
@@ -26,6 +26,7 @@
import java.util.Map;
import org.apache.slide.common.ServiceAccessException;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.structure.ObjectNotFoundException;
@@ -94,8 +95,11 @@
* object
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException
+ * if the object has been locked internally
*/
- Map getProperties(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException;
+ Map getProperties(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException,
+ ObjectLockedException;
/**
* Stores all properties associated to the object specified by
@@ -117,7 +121,8 @@
* object
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
void setProperties(String uri, Map properties) throws ServiceAccessException,
AccessDeniedException,
- ObjectNotFoundException;
+ ObjectNotFoundException, ObjectLockedException;
}
1.2 +13 -4
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroAdapter.java
Index: WebdavStoreMacroAdapter.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroAdapter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebdavStoreMacroAdapter.java 19 Oct 2004 12:55:06 -0000 1.1
+++ WebdavStoreMacroAdapter.java 20 Oct 2004 06:30:40 -0000 1.2
@@ -35,6 +35,7 @@
import org.apache.slide.common.ServiceParameterErrorException;
import org.apache.slide.common.ServiceParameterMissingException;
import org.apache.slide.common.Uri;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.store.MacroStore;
@@ -143,9 +144,13 @@
public void macroDelete(Uri targetUri) throws ServiceAccessException,
ObjectNotFoundException {
if (deleteStore != null) {
try {
+ // FIXME
+ if (true) throw new ObjectLockedException(targetUri.toString());
deleteStore.macroDelete(targetUri.toString());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
}
@@ -157,6 +162,8 @@
copyStore.macroCopy(sourceUri.toString(), targetUri.toString());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
}
@@ -167,6 +174,8 @@
try {
moveStore.macroMove(sourceUri.toString(), targetUri.toString());
} catch (AccessDeniedException e) {
+ throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
throw new ServiceAccessException(service, e);
}
}
1.2 +13 -7
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreSinglePropertyExtension.java
Index: WebdavStoreSinglePropertyExtension.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreSinglePropertyExtension.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebdavStoreSinglePropertyExtension.java 12 Oct 2004 20:19:02 -0000 1.1
+++ WebdavStoreSinglePropertyExtension.java 20 Oct 2004 06:30:40 -0000 1.2
@@ -26,6 +26,7 @@
import java.util.Map;
import org.apache.slide.common.ServiceAccessException;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.structure.ObjectNotFoundException;
@@ -98,8 +99,11 @@
* object
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException
+ * if the object has been locked internally
*/
- Map getProperties(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException;
+ Map getProperties(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException,
+ ObjectLockedException;
/**
* Adds or updates a single property associated to the object specified by
@@ -116,9 +120,10 @@
* object
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
void addOrUpdateProperty(String uri, String name, String value) throws
ServiceAccessException,
- AccessDeniedException, ObjectNotFoundException;
+ AccessDeniedException, ObjectNotFoundException, ObjectLockedException;
/**
* Removes a single property associated to the object specified by
@@ -134,8 +139,9 @@
* object
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
void removeProperty(String uri, String name) throws ServiceAccessException,
AccessDeniedException,
- ObjectNotFoundException;
+ ObjectNotFoundException, ObjectLockedException;
}
1.2 +7 -5
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroCopyExtension.java
Index: WebdavStoreMacroCopyExtension.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroCopyExtension.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebdavStoreMacroCopyExtension.java 19 Oct 2004 12:55:06 -0000 1.1
+++ WebdavStoreMacroCopyExtension.java 20 Oct 2004 06:30:40 -0000 1.2
@@ -24,6 +24,7 @@
package org.apache.slide.simple.store;
import org.apache.slide.common.ServiceAccessException;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.structure.ObjectAlreadyExistsException;
@@ -64,8 +65,9 @@
* if anything else goes wrong while copying the object
* @throws AccessDeniedException
* if the store denies copying this object or any descendants
+ * @throws ObjectLockedException if the object has been locked internally
*/
public void macroCopy(String sourceUri, String targetUri) throws
ServiceAccessException, AccessDeniedException, ObjectNotFoundException,
- ObjectAlreadyExistsException;
+ ObjectAlreadyExistsException, ObjectLockedException;
}
1.7 +26 -6
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java
Index: WebdavStoreAdapter.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WebdavStoreAdapter.java 19 Oct 2004 12:55:06 -0000 1.6
+++ WebdavStoreAdapter.java 20 Oct 2004 06:30:40 -0000 1.7
@@ -36,6 +36,7 @@
import org.apache.slide.common.*;
import org.apache.slide.lock.LockTokenNotFoundException;
import org.apache.slide.lock.NodeLock;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.authentication.JAASLoginModule;
import org.apache.slide.simple.reference.WebdavFileStore;
@@ -480,6 +481,8 @@
throw new RevisionNotFoundException(uri.toString(),
revisionDescriptor.getRevisionNumber());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
}
@@ -497,6 +500,8 @@
throw new ServiceAccessException(service, e);
} catch (RevisionNotFoundException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
@@ -520,6 +525,8 @@
throw new RevisionNotFoundException(uri.toString(),
revisionDescriptor.getRevisionNumber());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
@@ -545,6 +552,8 @@
return subject;
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
}
@@ -561,6 +570,8 @@
throw new ObjectAlreadyExistsException(uri.toString());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
// now, we do not have enough information, let's wait until we have
// it...
@@ -572,6 +583,8 @@
store.removeObject(uri.toString());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
toBeCreated.remove(uri.toString());
}
@@ -637,10 +650,10 @@
throw new
RevisionDescriptorNotFoundException(uri.toString());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
-
}
-
return descriptor;
}
}
@@ -661,6 +674,7 @@
}
}
+
// in initialzation phase there might be no other way to tell
// this actually is a collection
// if it turns out to be so we need to revoke our decission and
@@ -718,6 +732,8 @@
throw new RevisionDescriptorNotFoundException(uri.toString());
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
@@ -822,6 +838,8 @@
return (toBeCreated.contains(uri.toString()) ||
store.objectExists(uri.toString()));
} catch (AccessDeniedException e) {
throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
+ throw new ServiceAccessException(service, e);
}
}
@@ -833,6 +851,8 @@
try {
return store.objectExists(uri.toString());
} catch (AccessDeniedException e) {
+ throw new ServiceAccessException(service, e);
+ } catch (ObjectLockedException e) {
throw new ServiceAccessException(service, e);
}
}
1.2 +7 -5
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroMoveExtension.java
Index: WebdavStoreMacroMoveExtension.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/WebdavStoreMacroMoveExtension.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebdavStoreMacroMoveExtension.java 19 Oct 2004 12:55:06 -0000 1.1
+++ WebdavStoreMacroMoveExtension.java 20 Oct 2004 06:30:40 -0000 1.2
@@ -24,6 +24,7 @@
package org.apache.slide.simple.store;
import org.apache.slide.common.ServiceAccessException;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.structure.ObjectAlreadyExistsException;
@@ -64,7 +65,8 @@
* if anything else goes wrong while moving the object
* @throws AccessDeniedException
* if the store denies moving this object or any descendants
+ * @throws ObjectLockedException if the object has been locked internally
*/
public void macroMove(String sourceUri, String targetUri) throws
ServiceAccessException, AccessDeniedException, ObjectNotFoundException,
- ObjectAlreadyExistsException;
+ ObjectAlreadyExistsException, ObjectLockedException;
}
1.4 +42 -22
jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/BasicWebdavStore.java
Index: BasicWebdavStore.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/wck/src/org/apache/slide/simple/store/BasicWebdavStore.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BasicWebdavStore.java 18 Oct 2004 10:17:03 -0000 1.3
+++ BasicWebdavStore.java 20 Oct 2004 06:30:40 -0000 1.4
@@ -33,6 +33,7 @@
import org.apache.slide.common.ServiceAccessException;
import org.apache.slide.common.ServiceParameterErrorException;
import org.apache.slide.common.ServiceParameterMissingException;
+import org.apache.slide.lock.ObjectLockedException;
import org.apache.slide.security.AccessDeniedException;
import org.apache.slide.simple.reference.WebdavFileStore;
import org.apache.slide.structure.ObjectAlreadyExistsException;
@@ -161,8 +162,9 @@
* if any kind of internal error or any unexpected state occurs
* @throws AccessDeniedException
* if the store denies read access to this object
+ * @throws ObjectLockedException if the object has been locked internally
*/
- boolean objectExists(String uri) throws ServiceAccessException,
AccessDeniedException;
+ boolean objectExists(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectLockedException;
/**
* Checks if there is an object at the position specified by
@@ -176,8 +178,9 @@
* if any kind of internal error or any unexpected state occurs
* @throws AccessDeniedException
* if the store denies read access to this object
+ * @throws ObjectLockedException if the object has been locked internally
*/
- boolean isFolder(String uri) throws ServiceAccessException,
AccessDeniedException;
+ boolean isFolder(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectLockedException;
/**
* Checks if there is an object at the position specified by
@@ -191,8 +194,9 @@
* if any kind of internal error or any unexpected state occurs
* @throws AccessDeniedException
* if the store denies read access to this object
+ * @throws ObjectLockedException if the object has been locked internally
*/
- boolean isResource(String uri) throws ServiceAccessException,
AccessDeniedException;
+ boolean isResource(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectLockedException;
/**
* Creates a folder at the position specified by <code>folderUri</code>.
@@ -205,9 +209,10 @@
* if the store denies write access to this folder
* @throws ObjectAlreadyExistsException
* if there already is an object at <code>folderUri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
void createFolder(String folderUri) throws ServiceAccessException,
AccessDeniedException,
- ObjectAlreadyExistsException;
+ ObjectAlreadyExistsException, ObjectLockedException;
/**
* Creates a content resource at the position specified by
@@ -221,9 +226,10 @@
* if the store denies write access to this content resource
* @throws ObjectAlreadyExistsException
* if there already is an object at <code>resourceUri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
void createResource(String resourceUri) throws ServiceAccessException,
AccessDeniedException,
- ObjectAlreadyExistsException;
+ ObjectAlreadyExistsException, ObjectLockedException;
/**
* Sets / stores the content of the resource specified by
@@ -244,9 +250,10 @@
* if the store denies write access to this content resource
* @throws ObjectNotFoundException
* if there is no object at <code>resourceUri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
void setResourceContent(String resourceUri, InputStream content, String
contentType, String characterEncoding)
- throws ServiceAccessException, AccessDeniedException,
ObjectNotFoundException;
+ throws ServiceAccessException, AccessDeniedException,
ObjectNotFoundException, ObjectLockedException;
/**
* Gets the date of the last modiciation of the object specified by
@@ -254,34 +261,40 @@
*
* @param uri
* URI of the object, i.e. content resource or folder
- * @return date of last modification,
- * <code>null</code> declares this value as invalid and asks the
- * adapter to try to set it from the properties if possible
+ * @return date of last modification, <code>null</code> declares this
+ * value as invalid and asks the adapter to try to set it from the
+ * properties if possible
* @throws ServiceAccessException
* if any kind of internal error or any unexpected state occurs
* @throws AccessDeniedException
* if the store denies read access to this object or property
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException
+ * if the object has been locked internally
*/
- Date getLastModified(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException;
+ Date getLastModified(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException,
+ ObjectLockedException;
/**
* Gets the date of the creation of the object specified by <code>uri</code>.
*
* @param uri
* URI of the object, i.e. content resource or folder
- * @return date of creation,
- * <code>null</code> declares this value as invalid and asks the
- * adapter to try to set it from the properties if possible
+ * @return date of creation, <code>null</code> declares this value as
+ * invalid and asks the adapter to try to set it from the properties
+ * if possible
* @throws ServiceAccessException
* if any kind of internal error or any unexpected state occurs
* @throws AccessDeniedException
* if the store denies read access to this object or property
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException
+ * if the object has been locked internally
*/
- Date getCreationDate(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException;
+ Date getCreationDate(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException,
+ ObjectLockedException;
/**
* Gets the names of the children of the folder specified by
@@ -296,9 +309,10 @@
* if the store denies read access to this object or property
* @throws ObjectNotFoundException
* if there is no object at <code>folderUri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
String[] getChildrenNames(String folderUri) throws ServiceAccessException,
AccessDeniedException,
- ObjectNotFoundException;
+ ObjectNotFoundException, ObjectLockedException;
/**
* Gets the content of the resource specified by <code>resourceUri</code>.
@@ -312,9 +326,10 @@
* if the store denies read access to this content resource
* @throws ObjectNotFoundException
* if there is no object at <code>resourceUri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
InputStream getResourceContent(String resourceUri) throws
ServiceAccessException, AccessDeniedException,
- ObjectNotFoundException;
+ ObjectNotFoundException, ObjectLockedException;
/**
* Gets the length of the content resource specified by
@@ -331,9 +346,10 @@
* if the store denies read access to this content resource
* @throws ObjectNotFoundException
* if there is no object at <code>resourceUri</code>
+ * @throws ObjectLockedException if the object has been locked internally
*/
long getResourceLength(String resourceUri) throws ServiceAccessException,
AccessDeniedException,
- ObjectNotFoundException;
+ ObjectNotFoundException, ObjectLockedException;
/**
* Removes the object specified by <code>uri</code>.
@@ -347,6 +363,10 @@
* or property
* @throws ObjectNotFoundException
* if there is no object at <code>uri</code>
+ * @throws ObjectLockedException
+ * if the object already has been locked internally
+ * @throws ObjectLockedException if the object has been locked internally
*/
- void removeObject(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException;
+ void removeObject(String uri) throws ServiceAccessException,
AccessDeniedException, ObjectNotFoundException,
+ ObjectLockedException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]