[ https://issues.apache.org/jira/browse/TRANSACTION-9?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12512746 ]
Oliver Zeigermann commented on TRANSACTION-9: --------------------------------------------- Hmmm. That makes sense to me. However, the interface isn't exactly elegant, even now. Further extension really would make it more ugly. Here is a more elegant solution (hopefully): public interface FileResourceManager { Resource getResource(String path) throws IOException, LockException; boolean resourceExists(String path) throws IOException, LockException; Resource createDirectory(String path) throws IOException, LockException; Resource createFile(String path) throws IOException, LockException; void addResourceListener(ResourceListener listener); void removeResourceListener(ResourceListener listener); } public interface Resource { String getPath(); long getLength(); long getLastModified(); void setLastModified(long time); boolean isDirectory(); boolean isFile(); Collection<Resource> getChildren() throws IOException, LockException; InputStream readStream() throws IOException, LockException; OutputStream writeStream() throws IOException, LockException; boolean delete() throws IOException, LockException; boolean move(String destinationpath) throws IOException, LockException; boolean copy(String destinationpath) throws IOException, LockException; } public interface ResourceListener { void resourceChanged(Resource resource); void resourceCreated(Resource resource); void resourceDeleted(Resource resource); void resourceMoved(Resource resource, String oldPath); void resourceCopied(Resource resource, String oldPath); } What about that instead? > [transaction] Add full file management capabilities to the FileResourceManager > ------------------------------------------------------------------------------ > > Key: TRANSACTION-9 > URL: https://issues.apache.org/jira/browse/TRANSACTION-9 > Project: Commons Transaction > Issue Type: Improvement > Environment: Operating System: All > Platform: All > Reporter: Peter Fassev > Assignee: Oliver Zeigermann > Priority: Minor > Fix For: 2.0 > > Attachments: filemanager.zip > > > Hi, > As stated in the doc the FileResourceManager is: > "A resource manager for streamable objects stored in a file system" > I agree, that this is a resource manager, but it could be easily extended, to > support a full file management system. It will be very helpful to have > additional methods like renameResource(), getResourceSize(), > getResourceTime(), > setResourceTime() etc. This are common file operations, which should be > managed > by the FileResourceManager. > Further it will be very helpful to have (real) support for resource > collections > (folders). It will be necessary to distinguish between single resources > (files) > and collections (folders). > Together, this features will enable a transactional access to any file based > resources - for instance a document repository. > Are there plans for such extensions and if not, will they actually fit in the > goals of the transaction library? > If not, please open the underlying structure, like the inner class > TransactionContext, in order to add extensions the file management. For > instance, it will be good to have a separate factory method, which creates > the > context. > If you are interested in this proposal, I am ready to contribute to this > project. I consider myself as an experienced java developer and I will be > glad > to help you. > Best regards > Peter Fassev -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]