Author: ozeigermann
Date: Fri Jul 20 09:14:53 2007
New Revision: 558033
URL: http://svn.apache.org/viewvc?view=rev&rev=558033
Log:
New package for streamable resources. Will be implemented by transactional file
resource manager. Could also offer access to content from a CMS.
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java?view=auto&rev=558033
==============================================================================
---
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java
(added)
+++
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java
Fri Jul 20 09:14:53 2007
@@ -0,0 +1,13 @@
+package org.apache.commons.transaction.resource;
+
+public interface ResourceEvent {
+ enum EventType {
+ ACCESS, READ, CREATE, DELETE, WRITE, MOVE, COPY, COMMIT, ROLLBACK,
PROPERTYSET
+ };
+
+ String getPath();
+ String getDestinationPath();
+ String propertyName();
+
+ EventType getEventType();
+}
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java?view=auto&rev=558033
==============================================================================
---
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java
(added)
+++
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java
Fri Jul 20 09:14:53 2007
@@ -0,0 +1,7 @@
+package org.apache.commons.transaction.resource;
+
+
+public interface ResourceInterceptor {
+ boolean beforeCompletion(ResourceEvent event);
+ void afterCompletion(ResourceEvent event);
+}
\ No newline at end of file
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java?view=auto&rev=558033
==============================================================================
---
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java
(added)
+++
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java
Fri Jul 20 09:14:53 2007
@@ -0,0 +1,15 @@
+package org.apache.commons.transaction.resource;
+
+import java.io.IOException;
+
+import org.apache.commons.transaction.locking.LockException;
+
+public interface ResourceManager<R> {
+ R getResource(String path) throws IOException, LockException;
+
+ String getRootPath() throws IOException, LockException;
+
+ void addInterceptor(ResourceInterceptor interceptor);
+
+ void removeInterceptor(ResourceInterceptor interceptor);
+}
\ No newline at end of file
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java?view=auto&rev=558033
==============================================================================
---
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java
(added)
+++
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java
Fri Jul 20 09:14:53 2007
@@ -0,0 +1,51 @@
+package org.apache.commons.transaction.resource;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Collection;
+
+import org.apache.commons.transaction.locking.LockException;
+
+public interface StreamableResource {
+ String getPath();
+
+ boolean isDirectory();
+
+ boolean isFile();
+
+ Collection<StreamableResource> getChildren() throws IOException,
LockException;
+
+ StreamableResource getParent() throws IOException, LockException;
+
+ InputStream readStream() throws IOException, LockException;
+
+ OutputStream writeStream(boolean append) throws IOException, LockException;
+
+ boolean delete() throws IOException, LockException;
+
+ boolean move(String destinationpath) throws IOException, LockException;
+
+ boolean copy(String destinationpath) throws IOException, LockException;
+
+ boolean exists();
+
+ void createAsDirectory() throws IOException, LockException;
+
+ void createAsFile() throws IOException, LockException;
+
+ // plus more general properties
+ // among them could be length, lastmodfied, etc.
+ Object getProperty(String name);
+
+ Object setProperty(String name, Object newValue);
+
+ // plus locking methods
+ void readLock();
+
+ void writeLock();
+
+ boolean tryReadLock();
+
+ boolean tryWriteLock();
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]