Ten days ago, I threw out this nugget in "Protecting your Competitive Advantages in Open Source":
For example, the dotProject Files Module allows you to attach Files to any Project – or even Task – within the system. By design, it stores all files on the local filesystem and performs some simple versioning. But what happens if you want to store your files elsewhere such as an existing document repository? You could create your own File Module which interacts with your repository but you run into the problems noted above.
Well, in the meantime, I've been busy fleshing out the dotProject Files Module (in Head, not compatible with the 2.1 release) and have some results to share… the Files Module now has a pluggable backend called the FilesManager.
For basic usage, nothing will change. The default configuration uses the LocalFileManager to allow it to read and write all files to the local file system just as it always has. There is no noticable different to end users.
But this is where it gets interesting… I already know of one organization working on an SVNFilesManager and there has previously been a dotProject-CVS integration (briefly compatible with dP v1.0.2). With a pluggable backend like this, our user community should be able to build out interactions with each of their file repositories, document management systems, etc and make the experience transparent.
Unfortunately, this change will not be released in 2.1 and is not fully PHP4 compatible so it will be a while before it's available/useful to the general public. Regardless, it's an exciting development that opens some doors and new directions for our community. Feel free to check it out from Head and let me know what you think.