Wanted to check if anybody loads "cayenne.xml" and related Map and
Node XML files from locations other than default two: CLASSPATH and
WEB-INF/ ? More specifically:
1. anybody uses FileConfiguration?
2. anybody uses DefaultConfiguration (with 'addResourcePath' or
without) to directly reference file in the filesystem (vs. referencing
resources in classpath)?
3. anybody places DataMap / DataNode files in (jar) directories
outside of the directory where "cayenne.xml" is located?
I personally don't, as all these approaches lead to non-portable
applications that make unwarranted assumptions about the environment.
I think cases requiring to open cayenne.xml via the application UI are
special enough to warrant a custom configuration.
Some background. I am planning a rework of the config package to
include support for merging of multiple Cayenne projects into a single
"virtual project" in runtime (hence enabling multiple "persistent
units" in the app). So I am looking to simplify this task and stop
supporting edge cases that are not widely used, and also change the
basic algorithm of resolving files relative to cayenne.xml to ensure
they are actually relative to the URL within a JAR or class folder
where cayenne.xml is found (so that we can have multiple cayenne.xml
files and avoid conflicts when loading dependent XML files of those).
I think there is a lot of benefit in keeping the built-in choices of
file lookup down to just a few basic ones, and of course the users can
still write their own Configuration extensions to address non-standard