I have create an issue to solve this problem, solution is published. It's working but there some open subissue described in comments.
Evgeny. 2009/10/22 Andrus Adamchik <[email protected]>: > I was working on this exact problem, but due to the lack of time and some > other priorities it got postponed till after 3.0. This Jira contains links > to the design that I had in mind: > > https://issues.apache.org/jira/browse/CAY-943 > > For 3.1 I actually have more radical ideas, so it may look different at the > end. Anyways, all the complexity of this task is due to the need to handle a > general case of merging multiple descriptors and resolve arising conflicts. > If you know that your configuration does not have any such conflicts, it > should be reasonably simple to merge things by hand. Here is a rough example > (this is for 3.0, some things may be different in 2.0): > > > Configuration myConfig = new Configuration() { > // override all abstract methods to do nothing > } > > ClassLoader cl = .. // get a thread class loader > > // assuming all Cayenne projects are at the root of the classpath: > Enumeration<URL> projectURLs = cl.indResources("cayenne.xml"); > while(projectURLs.hasMoreElements()) { > URL baseURL = projectURLs.nextElement(); > > > ResourceLocator resourceLocator = new ResourceLocator() { > // override locator methods as appropriate... e.g.: > public URL getResource(String name) { > if(name.equals("cayenne.xml") { > return baseURL; > } > > // assuming there's no conflciting DataMap names > return super.getResource(name); > } > > } ; > Configuration scratchConfig = new DefaultConfiguration("cayenne.xml", > resourceLocator); > > // move all DataMaps from scratchConfig to myConfig > // move all DataNodes from scratchConfig to myConfig > } > > Configuration.initializeSharedConfiguration(myConfig); > > > Andrus > > On Oct 21, 2009, at 7:12 PM, Evgeny Ryabitskiy wrote: > >> Hello to everyone! >> >> I wonder if our cayenne is able to aggregate it's configuration from >> several projects? >> >> Like in my case I have several modules, each has it's configuration >> like module1-cayenne.xml >> So now root project need to get aggregated configuration from all modules. >> >> So I'm trying to use DefaultConfiguration for each module. >> The problem that after initialization configuration rewrites previous >> and become singleton configuration (I need them all!) >> >> Maybe I do something wrong or there no such feature? >> >> Evgeny Ryabitskiy. >> > >
