Thanks again for the patch! And sorry for the delay. I have a few remarks and questions:
- please use spaces, not tabs (Jackrabbit consistently uses spaces)
- please don't use import ...*
- byte b > byte b
- public is not required in interfaces
- return does not require (..)
To fix such problems, I use Checkstyle. If you like I can post the configuration I use.
Garbage collection: I like make garbage collection implementation independent; is it OK for you if I remove those cases? AbstractGarbageCollector and AbstractDataStore are not required then (anyway they are small).
It would be great if the database data store would automatically re-connect if the connection was lost (important for MySQL). To achieve this, org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager can be used.
It's quite tricky that DatabaseRecord extends FilterInputStream... However I'm not sure if it is required, is it not possible to just wrap the database BLOB object?
I don't think that FileDataStoreConstants is required.
Those are just my view, and I'm open to discuss them of course.
If you have time to change it yourself please go ahead. Otherwise I will do it and post the patch here before I commit it - but it will take a few more days.
Thanks for your help!