I'm building a JSF-Spring-Hibernate based application which needs to store content as pdf, MS Office files, etc. I was thinking about providing it JCR capabilities, adding Jackrabbit or Modeshape i.e. However I still have some doubts.
We actually store content as raw files in the File System and add a reference into our MySql database to them. That DB table keeps also info about modifications, versions, etc. Having it like that makes so easy to retrieve data about uploaded files per group, per user, etc. Is this so straight forward using the JCR API? Moreover, is there the possibility of keeping the files as they are in the file system and storing metadata info into MySQL as we're actually doing but using JCR?
The created by - updated by fields are actually stored in DB table and referred to system users in my application, but JCR implementations seem to have their own authentication system. I supose here the way to go is to create a new user into the JCR implementation per user of the system is created? What about password updates? Is it advisable to keep the user system password synchronized with the one from repository? Or should it be enough using the same password for every single user into the repository?
We often deal with same documents in more than one language. In this case, the document version is the same, but the language differ between files. I've seen there's a jcr:language property in the specs, can this be used for that?
Another possible issue I can see is that we're not currently controlling name duplication in our group names for example. There could be two equal group names and to differ their directories into the File System we're using their DB id's appended to the name in the directory path. I don't know if this is really a best practice an how could we manage it with a JCR implementation...
PD: My servlet container is Tomcat 6.
Pool your ideas!