cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <>
Subject Re: Loading multiple cayenne.xml
Date Tue, 06 Mar 2007 16:50:24 GMT
We wanted to support this in Cayenne, just never got around actually  
doing it... You are on the right track, but to be able to use a  
single DataContext that has access to nodes and DataMaps of all  
cayenne.xml instances, you'll need to develop an algorithm to merge  
all configuration instances in one:

Step 1: load the first cayenne.xml into a Configuration instance -  
this will be the "master config".
Step 2: load the next cayenne.xml in a separate Configuration, and  
take all its DataDomains, and place them in the master config. If you  
have DataDomains with matching names, you'd have to merge the DataMap  
and DataNode objects into the existing Domains, and so on.
Step 3: repeat step 2 for all remaining cayenne.xml.

In other words this is a tree merge algorithm that applies to the  
following trees:

   DataDomain 1..N
        DataNode 1..N
        DataMap  1..N


On Mar 6, 2007, at 5:19 PM, Eric BIANCHI wrote:

> Hi list,
> I'd like to load mutliple cayenne.xml and use them in my project.
> I've managed to load them in mutliple datacontext by using the  
> following code :
> DefaultConfiguration conf = new DefaultConfiguration();
> conf.addClassPath("my/class/path");
> Configuration.initializeSharedConfiguration(conf);
> DataContext contextMyDomain = DataContext.createDataContext 
> ("myDomain");
> ... repeat this until last cayenne.xml
> I'd like to use only one DataContext, so I guess I have to take all  
> nodes and register them in the first DataContext (doesn't work so far)
> I'm not sure I'm doing things "the cayenne way".
> Have someone done it before ? Could you point me to the right  
> documentation ?
> Thanks in advance, best regards
> --

View raw message