When I look at the database contents, the paths for the indexes, backups and attachments are stored in the tables (in PROPERTYSTRING). This couples the database contents with the application server, which violates encapsulation – the database now has a reverse dependency on the configuration details of the application server. This has the very practical implications that moving to a new machine or deployment directory for the application server requires some
[afaik undocumented] monkeying around with the paths stored in the database.
(a) If the information pertains to the paths into which the application server is deployed, it should be in the XML configuration descriptors in the webapp.
(b) Attachments are pretty important information anyway, so they should really be in the database. See issue JRA-806.
(c) It would be lovely if the indexes were also stored in the database. (This is possible using Lucene, right?) But it would be an ok solution too if they were stored with the app server – but only if the relevant path was in the app server config, and they were regenerated as needed.